web架构之nginx反代负载均衡动静分离+LAP负载均衡+mysql主从(三)
此文是在 web架构之nginx反代负载均衡+LAP负载均衡+mysql主从(二)的基础上增加网站动静分离功能。前端nginx服务器(133、134)实现:负载均衡+处理web静态文件。后端LAP服务器(131、132)Apache+php处理web动态文件。
修改nginx配置文件一台,另一台复制过去就行;
- 修改网站配置文件/usr/local/nginx/conf/xbz_web/下面的两个网站配置文件www.dz.com、www.wp.com
分别添加如下内容:
location ~ .*\.(html|htm|png|gif|jpg|jpeg|bmp|ico|txt|xls|doc|docx|gz|zip|rar|css|js)$
{
#保证目录一样,以便做网站数据rxync同步;
root /var/www/html/wordpress;
expires 30d;
}
www.wp.com完整配置代码:
upstream web_wp {
server 192.168.29.131:80 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.29.132:80 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name www.wp.com;
location / {
root html;
index index.html index.htm index.php;
proxy_set_header Host $host;
proxy_pass http://web_wp;
}
location ~ .*\.(html|htm|png|gif|jpg|jpeg|bmp|ico|txt|xls|doc|docx|gz|zip|rar|css|js)$
{
#保证目录一样,以便做网站数据rxync同步;
root /var/www/html/wordpress;
expires 30d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
www.dz.com配置文件添加以下内容:
location ~ .*\.(html|htm|png|gif|jpg|jpeg|bmp|ico|txt|xls|doc|docx|gz|zip|rar|css|js)$
{
#保证目录一样,以便做网站数据rxync同步;
root /var/www/html/discuz;
expires 30d;
}
www.dz.com完整配置代码:
upstream web_dz {
server 192.168.29.131:80 weight=1 max_fails=3 fail_timeout=30s;
server 192.168.29.132:80 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name www.wp.com;
location / {
root html;
index index.html index.htm index.php;
proxy_set_header Host $host;
proxy_pass http://web_dz;
}
location ~ .*\.(html|htm|png|gif|jpg|jpeg|bmp|ico|txt|xls|doc|docx|gz|zip|rar|css|js)$
{
#保证目录一样,以便做网站数据rxync同步;
root /var/www/html/discuz;
expires 30d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 这里是在133机器做的修改,改好后scp到134的机器。
scp -r /usr/local/nginx/conf/xbz_web/* root@192.168.29.134:/usr/local/nginx/conf/xbz_web/
-
133和134分别创建网站目录,测试nginx配置是否正确,重启nginx
mkdir -p /var/www/html/{discuz,wordpress} /usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
- 浏览器测试网站动静分离是否生效,能访问无图片等静态页面则配置OK!
- 从LAP机器把网站目录分别scp到nginx网站目录
scp -r root@192.168.29.132:/var/www/html/* /var/www/html/
- 重新加载nginx,浏览器刷新网站页面图片等信息是否正常显示,能正常显示测动静分离配置OK!
/usr/local/nginx/sbin/nginx -s reload
总结:nginx+Apache实现网站动静分离配置到此完成。到这此架构还存在以下问题:
1、前端的nginx和后端Apache网站目录数据不能实时同步,后续引入rsync实现网站数据实时同步。
2、nginx负载均衡,此时nginx分配任务默认是轮询,轮流访问后端Apache web服务器,无法保持会话。若是使用ip_hash,负载均衡就会变得没有意义,后续优化会加入Redis缓存。
3、数据库做了主从,但是还没有实现高可用。
4、nginx未做优化。