Archive for 09月, 2008
使用rsync服务同步服务器文件
使用rsync服务,主机做rsync服务器,备机做rsync客户机
主机:
FreeBSD系统,可以使用port安装rsync,安装完后的路径在/usr/local/下。修改/usr/local/etc/rsyncd.conf文件,增加:
path = /usr/local/www/test/
comment = my blog data
uid = www
gid = www
ignore errors
read only = yes
list = yes
auth users = linuxing
secrets file = /usr/local/etc/rsyncd.secrets
增加密码验证文件:
# cat /usr/local/etc/rsyncd.secrets
linuxing:test
# chown root:wheel /usr/local/etc/rsyncd.secrets
# chmod 600 /usr/local/etc/rsyncd.secrets
启动服务
# rsync –daemon
或
# /usr/local/etc/rc.d/rsyncd.sh start
查看是否已经打开服务(端口873)
# sockstat |grep 873
root rsync 1147 4 tcp4 *:873 *:*
或
# netstat -aln | grep 873
tcp4 0 0 *.873 ?*.* LISTEN
确认都正常的话,使到rsync服务开机自动启动,在/etc/rc.conf,增加rsyncd_enable=”YES”。
备机:
使用的是红旗DC Server [...]
采用正确的HTML 4.01标准制作页面就是最好的
★页面主题优化
一个页面的<title></title>部分是很重要的,许多SEO都坚信,Google会优先寻找这里的文字,因此好多网站就疯狂的在这里写下一堆关键字,希望增加被搜索的概率。
呵呵,你会觉得Google这么傻吗?这么容易就被一个title所左右了?其实,我们不妨老实一些,实事求是的写下自己网站的名字,当然,网站的名字要考虑好,最好包含网站的主要内容
★页面头部优化
页面头部指的是代码中<head></head>部分,具体一点就是<meta>中的“Description(描述)”和“Keywords(关键字)”两部分,这部分也是SEO们比较花心思的地方,理论一大堆!总结起来就是:
“描述”部分应该用近乎描述的语言写下一段介绍你网站的文字,在这其中,你应该适当的对你网站的特色内容加以重复以求突出,比如:<meta name=”description” content=”网站策划,网站设计,域名服务,域名主机,主机空间,网站制作,网站优化,seo优化,网站推广,网站保姆,网站维护,网络营销,网站医生,技术寻租,网站技术,网络人才出租等各项服务;营销文库里含概了大量的seo技术应用、网站推广等相关的网络营销知识;给广大的客户群体提供网站策划,版面栏目规划,网络市场调查等贴心的保姆服务,大量的网站网络基础、域名选用及网站程序、网站美工相关的知识让您成为一个网站网络技术型人才”>
“关键字”部分也很简单,你只需在这里列出你认为合适的,能突出网站内容的关键字就可以了,不要太多,10个8个就可以了,多了也没用,搜索引擎只会浏览靠前的几个,余下的都是浪费。不过有一点大家要明白,现在的主流搜索引擎都不再依靠<meta>中的关键字了,因此,这部分内容我们也只是“例行公事”,个人觉得意义不大,不过总好过没有。而且关键字的选择也是一门学问
★超链接优化
搜索引擎为何可以能够索引全世界的网站,是因为各个搜索引擎程序中都有一个会自动“爬行”于互联网上的智能机器人程序,这个机器人就是顺着网站之间的链接游览世界的,那么我们就应该为它创造一个良好的爬行通道——合理的设置链接。
怎样的链接才是合理的呢?你只需牢记以下几点:
1、采用纯文本链接,少用,最好是别用Flash动画设置链接,因为搜索引擎无法识别Flash上的文字,许多公司、个人都喜欢酷酷的Flash动画,网站的入口也做成Flash片断,呵呵,这么做在目前几乎就是“自寻死路”,搜索引擎很难光顾这样的网站。而且个别设计者非常马虎,把网站的入口链接放在了Flash上,有时因为网络繁忙、缺少Flash插件而导致用户根本就看不到网站的内容,失败,失败中的失败。
?2、按规范书写超链接,就像这样:<title>工程检测︱检测标准︱检测仪器︱检测论文︱建筑工程︱检测新闻︱质量检测︱无损检测︱检测仪器招标︱检测设备求购︱自助建站︱检测论坛︱检测图书︱检测技术︱检测软件︱学习培训︱检测专家——中国工程检测网</title>?
3、最好别使用图片热点链接,理由和第一点差不多。
★图片优化
图片优化不是让你修改图片的大小、颜色,而是你应该为每个<img>标签加上alt属性,就像这样:<img src=””?alt=庐山瀑布 /> ,alt属性的作用是当图片无法显示时以文字作为替代显示出来,而对于SEO来说,它可以令搜索引擎有机会索引你网站上的图片,大家都用过baidu和google的图片搜索功能吧,你以为搜索引擎是怎么找到图片的,不会以为Google能看懂图片吧!对于一些确实没什么意义的图片,最好也不要省略alt,而应该留空,即 alt=”
★为网站制作一个“网站地图”
什么是网站地图?说白了就是一个页面,在这个页面上呢,列出了你网站中各个栏目的入口地址,站点地图的作用很大,首先,对于一个栏目众多的网站,它可以帮助访客最快速度找到所需的内容;二则,可以给搜索引擎提供一份自己网站的“鸟瞰图”,方便搜索机器人依次索引整个网站。
★PageRank(pr值)
PR值是Google提出的一个重要参数,它标明了某个网站的重要程度,那么pr值是如何确定的呢?目前普通的解释为:假如有ABC三个网站,彼此互作友情链接,那么当一个访客通过A上的友情链接来到B时,Google就认为A为B投了“一票”,同理,如果有人从C访问B,那么B又得一票,如果全世界的网站上都有B的友情链接,呵呵,可想而知,B就是世界上最重要的网站了!
那么如何提供我们自己的pr哪,找别人交换链接啊!不过不能乱找,也不能狂找,而应该找一些和自己网站内容相近,且较为优秀的网站
尽可能多的登陆一些除了三巨头以外的搜索引擎,这也能帮助你提高网站的pr值。每个搜索引擎的标准基本与三大引擎巨头相同。但也有一些细小的差别。这里给出了了大部分知名引擎的入口地址。
切记!不要疯狂的交换链接,如果你的首页上一下子搞了几百个友情链接,呵呵,Google不但不会提升你的pr,没准还得认为你作弊,从而把你从自己的数据库中删除
★静态页面与动态页面
目前所有的SEO都认为,Google一类的搜索引擎会尽量避免索引带有参数动态页面,而喜欢索引普通的静态页面,这一点并未得到Google等搜索引擎的明确回答,但从效果来看是这样,毕竟动态页面的变数太大,举个例子,你发了一个帖子,可能在论坛某板块的第1页上,可随着跟贴的增加你的发言可能就被挤到第10页上了,你说搜索引擎是不是很头疼啊。
?因此,制作网站的时候,最好避免使用动态页面,或者改良技术,让动态页面自动生成对应的静态页面,既能便于搜索引擎收录,也可以降低网站服务器、数据库负担,一举两得,不过这也不是觉对的,还是那句话,网站流量决定一切,即便是一个全部采用动态页面的网站,但因为很受欢迎访客不断,那么它还是会被搜索引擎青睐,还是会出现在搜索结果的前列。而且,随着技术的进步,搜索引擎也会改进,搜索动态页面将来必定会更加容易。
★避免大“体积”的页面
有经验标明,搜索引擎不喜欢索引大体积的页面,即一个页面代码部分的体积不要太大,控制在100kb内为佳
★最重要的一点!合理的代码结构
搜索引擎喜欢格式清晰,结构分明的页面,理论上XML是最合乎搜索引擎的胃口了,呵呵,当然,这太极端了,不过如果采用最新的XHTML+CSS技术将页面数据同表现分离,即避免大量嵌套表格和其它冗余的代码还是能够完美实现这一要求的。为了说明这个问题,请允许我再次帮朋友的网站做下广告,呵呵,别看广告,看疗效!
大家同样可以采用正确的HTML 4.01标准制作页面,窍门就是一个:多多使用CSS样式,减少代码中的修饰部分,比如文章标题就应该采用<h1>来表示,段落就采用<p>而不是<br /> 等等,这部分细说起来很麻烦,需要大家自己学习研究,现在国内的专业SEO们也开始重视XHTML技术,因为他们发现,XHTML可以切实满足建立一个“结构良好、条例清晰”的页面的这个要求。
使用Varnish反向代理缓存的安装配置
增加一个varnish帐户
useradd -d /dev/null -s /sbin/nologin varnish
下载varnish
wget http://nchc.dl.sourceforge.net/sourceforge/varnish/varnish-1.1.1.tar.gz
解压
tar zxvf varnish-1.1.1.tar.gz
cd varnish-1.1.1
配置
./configure –prefix=/usr/local/varnish
编译
make
安装
make install
设置相关目录
cd /usr/local/varnish
mkdir var
mkdir logs
mkdir etc
mkdir cache
配置文件
touch /usr/local/varnish/etc/cache.vcl
touch /usr/local/varnish/stopv
touch /usr/local/varnish/startv
touch /usr/local/varnish/resetv
chmod +x /usr/local/varnish/stopv
chmod +x /usr/local/varnish/startv
chmod +x /usr/local/varnish/resetv
修改权限
cd ..
chown -R varnish varnish
chgrp -R varnish varnish
cache.vcl内容
backend www1 {
set backend.host = “后端真实的web IP1″;
set backend.port = “http”;
}
backend www2 {
set backend.host = “后端真实的web IP2″;
set backend.port = “http”;
}
backend www3 {
set backend.host [...]
大型高负载网站应用架构要点
高负载高并发或者高增长情况下,需要考虑的问题很多是和程序开发无关,而是和整个系统的架构密切相关的。
数据库
数据库是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作。我推荐的是M-M-Slaves方式,2个主Mysql,多个Slaves,需要注意的是,虽然有2个Master,但是同时只有1个是Active,我们可以在一定时候切换。之所以用2个M,是保证M不会又成为系统的SPOF。Slaves可以进一步负载均衡,可以结合LVS,从而将select操作适当的平衡到不同的slaves上。
以上架构可以抗衡到一定量的负载,但是随着用户进一步增加,你的用户表数据超过1千万,这时那个M变成了SPOF。你不能任意扩充Slaves,否则复制同步的开销将直线上升,怎么办?我的方法是表分区,从业务层面上进行分区。最简单的,以用户数据为例。根据一定的切分方式,比如id,切分到不同的数据库集群去。
全局数据库用于meta数据的查询。缺点是每次查询,会增加一次,比如你要查一个用户nightsailer,你首先要到全局数据库群找到nightsailer对应的cluster id,然后再到指定的cluster找到nightsailer的实际数据。每个cluster可以用m-m方式,或者m-m-slaves方式。
这是一个可以扩展的结构,随着负载的增加,你可以简单的增加新的mysql cluster进去。
需要注意的是:
1、禁用全部auto_increment的字段
2、id需要采用通用的算法集中分配
3、要具有比较好的方法来监控mysql主机的负载和服务的运行状态。如果你有30台以上的mysql数据库在跑就明白我的意思了。
4、不要使用持久性链接(不要用pconnect),相反,使用sqlrelay这种第三方的数据库链接池,或者干脆自己做,因为php4中mysql的链接池经常出问题。
缓存
缓存是另一个大问题,我一般用memcached来做缓存集群,一般来说部署10台左右就差不多(10g内存池)。需要注意一点,千万不能用使用swap,最好关闭linux的swap。
负载均衡/加速
可能上面说缓存的时候,有人第一想的是页面静态化,所谓的静态html,我认为这是常识,不属于要点了。页面的静态化随之带来的是静态服务的
负载均衡和加速。我认为Lighttped+Squid是最好的方式了。
LVS <——->lighttped====>squid(s) ====lighttpd
一般用php-fastcgi配合lighttpd, 性能比apache+mod_php要强很多。
squid的使用可以解决文件的同步等等问题,但是需要注意,你要很好的监控缓存的命中率,尽可能的提高的90%以上。
存储
存储也是一个大问题,一种是小文件的存储,比如图片这类。另一种是大文件的存储,比如搜索引擎的索引,一般单文件都超过2g以上。小文件的存储最简单的方法是结合lighttpd来进行分布。或者干脆使用Redhat的GFS,优点是应用透明,缺点是费用较高。我是指你购买盘阵的问题。我的项目中,存储量是2-10Tb,我采用了分布式存储。这里要解决文件的复制和冗余。
这样每个文件有不同的冗余,这方面可以参考google的gfs的论文。
大文件的存储,可以参考nutch的方案,现在已经独立为hadoop子项目。
网页性能优化工具
Firefox Firebug Net panel,见http://www.getfirebug.com
Yslow,Yahoo 性能扩展Firebug,见http://developer.yahoo.com/yslow/
Firefox LiveHTTP Headers,见http://livehttpheaders.mozdev.org/
IE Fiddler,同时也是一个多用途封包监听器,见http://www.fiddlertool.com/fiddler/
IE HTTPWatch,见http://www.httpwatch.com/
Web检查工具,见http://webkit.org/blog/?p=41
如何让百度蜘蛛收录
要先让百度收录自己网站
现在最简单的办法,你自己创造个关键字,比如“murray天空”。千万要保证关键字的唯一性,百度搜索到的结果相关性要低。那关键字要在你首页出现,而且有相关解释,目的是围绕关键字做相关内容。然后去百度更新快的地方,发布相关信息。你发表的文章要围绕你创造的关键字写,关键字可以使用一两次加粗,色彩,或者下划线等,关键字连接到你首页地址,内容里再加一两次你首页地址。不要太过分就可以。
最重要的到了,关键字加好了,信息也发布了,现在应该做的是触发百度检测数据库,从而百度会顺着那些新内容找到你首页!怎么触发?还用问吗? 刚做的关键字,具有唯一性,而且相关性低。如果有人搜索那关键字,百度检索时候会优先考虑最合适的页面,也许百度暂时没有去你站,但是百度肯定能分析到新收录的信息,继而,从新收录的信息相关连接爬到你站,更新!
怎么触发百度搜索自己创造的关键字?方法太多了!去一些小孩子热门的论坛,发表一些容易让人回复的帖子,关键字指向你站,也可以是关键字 XXX搜索地址。可以去QQ论坛发布消息,问别人关键字XXX到底是什么意思? 送100QB啊!可以去百度知道发布,高分求关键字XXX的解释!还有其他很多方法,自己想!动动脑子!要去人气多的地方!当然了,你也可以发布虚假消息!嘿嘿。。。比如去站长类的论坛发布“百度被黑,搜索关键字XXX连接地址全部指向GOOGLE!”也可以去其他论坛发布“百度新闻,明天全国有大地震!”总之引导网友去触发你那关键字,相信不用多,十几个人足够了!
以上方法是利用让百度用其它的关键字去更新,朋友站已经用这个方法实验了,成功!估计成功率应该在80%以上,主要是看你操作了! 很多权重高的站和论坛,百度每天都去爬一次。
收录总结
一: 增加原创的文字,适当围绕关键字优化,强烈建议在title里也加一下。
二: 在百度权重高,更新快的地方发布围绕关键字相关内容的信息和你站点连接=!
三: 引导别人去查找这个关键字,触发百度重新检索数据库,最后根据检索结果定位到你的站。
通过三,百度会优先考虑二,通过二,找到一。然后百度会重新抓你站!更新!问题解决!目的达到!任务完成!第一步完全可行,第二部你自己根据关键字做一些内容发十几个地方,被百度收录一个,也算成功!三是重点,看你怎么操作了!
Web站点优化基本原则
1 产生较少的HTTP请求
2使用一个内容交付网络(CDN)
3 页面头部增加一个过期设置
4 Gzip压缩站点内容
5 将CSS移至最页面顶部
6 将script脚本移至页面底端
7 CSS中避免JavaScript表达式
8 在外部调用JavaScript和CSS
9 减少DNS查找
10 减小JavaScript
11 避免重定向
12 删除重复的脚本
13 配置Etags
用gzip压缩Web文件,为网页提速
通过gzip压缩文件,用以提高web站点的性能,提高网页访问速度。如何开始对网站内容进行gzip,如果根据不同的主机环境来对这个做相应设置准备,环境假设为LAMP
选择1: 对Apache 1.x进行mod_gzip操作
如果你使用Apache 1.2 和1.3,那么mod_gzip 模块是可用的。为了检查Apache的版本,你可以检查Firebug’中Net面板,查找对于任何请求,服务器响应的头部。如果你不能看到它,那么检查提供商的文档或者创建一个简单的PHP脚本来回显这些信息到浏览器中去,如:
<?php echo apache_get_version(); ?>
在服务器头部信息中,你或许能看到mod_gzip版本,如果它被安装了的话。它或许是这个样子的:
Server: Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a…..
好了,在我们将信息发送给浏览器之前,我们已经建立了我想要压缩的所有内容,PHP脚本输出,静态HTML页面,JavaScripts和样式表。那么现在就可以通过mod_gzip来实现,在你站点的根目录下创建一个.htaccess文件,包括:
mod_gzip_on Yes
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^application/json$
mod_gzip_item_include mime ^text/.*$
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.php$
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.txt$
mod_gzip_item_include file \.xml$
mod_gzip_item_include file \.json$
Header append Vary Accept-Encoding
第一行是的mod_gzip命令可用。下面的三行设置压缩是基于MIME类型上的。下面的部分是一样,只是以文件扩展为基础。最后的一行是设置Vary头部的,包括Accept-Encoding值。
如果你想发送Vary: *头部,使用:
Header set Vary *
需要注意的是,一些主机提供商不允许你使用Header 定向。如果存在这种情况,希望你可以用下面这句话来代替最后一行“
mod_gzip_send_vary On
这也将要设置Vary头部为Accept-Encoding.
需要注意的是,这里或许有很小的文件存在,如果你的文件太小(举个例子,小于1KB),那么它们就需要gzip,即时你已经将所有的东西都设置正确了。如果你gzip的话,你的主机不得不为每个小的文件进行不必要的gzip开销。
选择2:Apache 2.0版本使用mod_deflate
如果你的主机运行的是Apache 2版本,那么你可以使用mod_deflate。尽管的它的名字没有带有gzip的信息,但是它也是使用gzip进行压缩。为了设置mod_deflate,需要在.htaccess文件中添加下面的信息:
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/json
Header append Vary Accept-Encoding
选择3:使用php.ini文件
理想情况下,我们希望Apache能gzip内容,但是不幸的是,一些主机提供商或许不允许你这么做。如果你的主机提供商这这样的话,你就可以使用php.ini文件。若干你将一个php.ini文件放到一个目录下,那么它就会重写这个目录和它子目录下的PHP设置。
如果你不能使用Apache的mod_gzip 或mod_deflate模块,你仍旧能够使用PHP来压缩你的内容,达到预期的解决方案,你需要设置你的web服务器,因此所有的静态HTML、JavaScript [...]
配置Mysql5主从同步
一.安装包选择:
mysql-5.0.19.tar.gz
二.安装环境:
主服务器:192.168.0.201
从服务器:192.168.0.00
三.主服务器配置:
建立用户
grant replication slave on *.* to user001@192.168.0.200 identified by ‘111111′
编辑配置文件/etc/my.cnf
server-id = 1
log-bin=mysql-bin
binlog-do-db=test
binlog-ignore-db=mysql
注:
# grant replication slave on *.* to ‘用户名’@’主机’ identified by ‘密码’;
# binlog-do-db=需要备份的数据库名,可写多行
# binlog-ignore-db=不需要备份的数据库名,可写多行
#可在B Slave上做连接测试: mysql -h 192.168.0.200 -u test -p
四.从服务器配置:
编辑/etc/my.cnf
server-id=2
server-id=2
log-bin=mysql-bin
master-host=192.168.0.201
master-user=user001
master-password=111111
master-port=3306
replicate-do-db=test
replicate-do-db=test1
# replicate-do-db=test需要备份的数据库名
# replicate-ignore-db=mysql?忽略的数据库
# master-connect-retry=60?如果从服务器发现主服务器断掉,重新连接的时间差(秒)
先手动同步一下主从服务器中要备份的数据库,再重启主,从服务器。
五.验证是否配置正确:
# mysql>slave start;
#?mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.201
Master_User: repluser1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000045
Read_Master_Log_Pos: 212
Relay_Log_File: sky-relay-bin.000054
Relay_Log_Pos: 235
Relay_Master_Log_File: [...]
linux全新mysql5安装手册
先将目录定位到源代码目录
cd /user/local/mysql/mysql5
以下为安装的具体命令:
#groupadd mysql
#useradd mysql -c “start mysqlds account” -d /dev/null -g mysql -s /sbin/nologin
#./configure –prefix=/usr/local/mysql?–with-mysqld-user=mysql?
#make && make install
#strip /usr/local/mysql/libexec/mysqld
#../bin/mysql_install_db
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/var
#chgrp -R mysql /usr/local/mysql
#cp support-files/my-medium.cnf /etc/my.cnf
#chown root:sys /etc/my.cnf
#chmod 644 /etc/my.cnf
#/usr/local/mysq/bin/mysqld_safe –user=mysql &

