Nginx平台搭建:Nginx+mysql+php-fpm搭建高性能Nginx平台
前端Nginx:192.168.93.137
后端web1:192.168.93.138
后端web2:192.168.93.139
前端nginx配置:
http { upstream www.lihuipeng.com {
location / { log_format lihuipeng '$remote_addr - $remote_user [$time_local] $request ' server location / { log_format lihuipeng007 '$remote_addr - $remote_user [$time_local] $request ' } |
通过upstream 名字 {}定义后端web的负载机器,然后在虚拟主机中通过 proxy_pass http://名字; 来使用upstream,再自定义一下日志格式,以获取用户的IP
后端web配置:
server if (-d $request_filename){ error_page 500 502 503 504 404 403 http://www.lihuipeng.com; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { location ~ .*\.(js|css)?$ { location ~ .*\.(log|txt)$ location ~ .*\.(php)?$ server if (-d $request_filename){ error_page 500 502 503 504 404 403 http://www.lihuipeng007.com; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { location ~ .*\.(js|css)?$ { location ~ .*\.(log|txt)$ location ~ .*\.(php)?$ |
这样一个简单的nginx负载均衡就完成!
PS:Nginx负载的五种模式,也就是upstream的模式
1 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自
动剔除。
2 weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream www.lihuipeng.com { server 192.168.93.138 weight=10; server 192.168.93.139 weight=10; } |
3 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以
解决session的问题。
upstream www.lihuipeng.com{ ip_hash; server 192.168.93.138:80; server 192.168.93.139:80; } |
4 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5 url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务
器为缓存时比较有效。
upstream www.lihuipeng.com{ server 192.168.93.138:80; server 192.168.93.139:80; hash $request_uri; hash_method crc32; } |
用得比较多得应该是第3、5这两种吧!
后端的web文件同步有很多选择了,可以做nfs、rsync等!
本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/701509如需转载请自行联系原作者
lihuipeng