大型网站后台构建实践
公司接了个新项目,建一个查询网站,同一时间可能会面对1万甚至以上的查询量。
创新互联是一家集网站建设,新绛企业网站建设,新绛品牌网站建设,网站定制,新绛网站建设报价,网络营销,网络优化,新绛网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。普通PC环境,大约同时支持2000到3000的并发量,当然,我不排除有高手进行后台服务器优化,实现更高的并发量。
一些大型的网站会采取“分流”的方式去将连接平均分摊到后台服务器,例如前面一台主机负责接收连接和与后台服务器的负载均衡。如下图:
实例如途中,一共需要配置了多台服务器。
server1——装有Centos6.3,Web server 为Nginx,主要功能对网站用户进行负载均衡,将访问派送到后台的Webserver。
server2——装有Centos6.3,基本配置为LAMP,或者LNMP。两者皆有优缺点。主要用户保存网站,数据存储和网站数据 处理等工作。
server3——同上
server4——同上
……
……
同时,为了保证数据的一致性,我们会采取一种数据库同步的操作,利用1主2从,最后再做加入新从的测试。其实之前我也做过,具体可以参照之前写的博客《Mysql 复制(Replication)实现》
正式开始配置配置辅助负载均衡的server前,先配置后台server,这里,我选择配置LNMP,具体配置方法可以参照我博文《Centos 6.2 实际工作环境搭建(LNMP)》
也可以使用《一键安装LANMP》
这里我所使用的是一键安装LANMP版本,配置比较简单,比较适合新手。
下载安装
wgethttp://dl.wdlinux.cn:5180/lanmp_v2.4.tar.gz
tar zxvf lanmp_v2.4.tar.gz
sh in.sh
4个可选安装,如下图
1,2,3 是安装独立的环境,不可自由切换nginx,apache,nginx+apache应用环境
4 是安装所有,即可自由切换nginx,apache,nginx+apache的应用环境
编译安装比较慢,现只提供在CentOS 5.X/wdlinux_base 5.X/wdos 1.X 系统下的RPM安装,5分钟就可以
也可以直接下载wdos的安装,集成最新的wdcp,不过目前只有32位
具体可看http://www.wdlinux.cn/bbs/thread-2431-1-1.html
虽然安装LANMP,但实际应用的时候会将服务系形似分配成LNMP或者LAMP。
测试通过就继续安装,分别安装了3台。
测试通过后,实际环境为:
1.LN(Centos6.3+Nginx)用于负载均衡---IP地址:192.168.1.100
2.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.171
3.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.172
4.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.173
5.LNMP(Centos6.3+Nginx+Mysql+PHP)备用Web服务器---IP地址:192.168.1.174
Mysql复制按照一开始的架构图,需要1主2从,所以开始配置mysql复制,具体可以参照之前写的博客《Mysql 复制(Replication)实现》使用前要先说明,如果使用一键安装版,就需要将read_only = 1这个选项去掉,不能添加。这个只读设置会影响一键安装版的PHP管理页面。
2号服务器的Mysql为主,3号,4号的为从。
配置过程中,要将2个数据库列出到排外,不需要进行复制同步。避免数据库出错。
#主/etc/my.cnf binlog_ignore_db=mysql,wdcpdb #从/etc/my.cnf replicate-ignore-db=mysql replicate-ignore-db=wdcpdb
配置完毕后,在两天从中输入:
SHOW SLAVE STATUSG
查看复制状态,当看见Slave_IO_Running: Yes Slave_SQL_Running: Yes
就已经证明复制已经可以正常运作。在主随便创建一个数据库,然后在从刷新,就会出现刚复制过来的数据库。
虚拟主机打开浏览器输入192.168.1.171:8080,进入wdcp服务器管理界面,根据下图进行简单设置。
简单说明,增加服务器端口,是因为文章开头已经说过,在假设没有DNS的前提下进行操作,没有DNS的域名识别,如何进行虚拟主机识别呢?用端口。我这里分别开通了81,82.
Web引擎,默认是Lanmp的就是Linux+apache+Nginx+Mysql+php,我们这个项目需要高并发量,所以设置了Lnmp就是Web引擎为Nginx。
设置完成后重启。
设置虚拟主机使用该管理系统新建虚拟主机非常简单,只需要点击新建站点,写一下域名,就可以了,当然,记得将端口改为81.
分别在三台服务器中建立虚拟主机,端口号均为81.
实际的第一个站点的虚拟主机如下:
1-server-192.168.1.171:81
2-server-192.168.1.172:81
3-server-192.168.1.173:81
修改linux的时间可以使用date指令 在命令行输入: date 显示当前时间 Fri Aug 3 14:15:16 CST 2007 date -s 按字符串方式修改时间 可以只修改日期,不修改时间,输入: date -s 2007-08-03 只修改时间,输入:date -s 14:15:00 同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00" 修改完后,记得输入:clock -w 把系统时间写入CMOS
vi /etc/nginx/nginx.conf
修改成user nginx; worker_processes 10; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include /etc/nginx/mime.types; default_type application/octet-stream; keepalive_timeout 120; tcp_nodelay on; upstream s01 { server 192.168.1.171:81; server 192.168.1.172:81; server 192.168.1.173:81; } server { listen 80; server_name s01.domain.com; location / { proxy_pass http://s01; } } }
2.重启Nginxservice nginx restart
网页标题:大型网站后台构建实践
链接地址:http://myzitong.com/article/cjjope.html