一个nginx、mysql、php-fpm环境下配置负载均衡的例子
系统环境如下:
1、前端nginx配置:
复制代码代码示例:
http {
upstream www.jbxue.com {
location / {
log_format jbxue '$remote_addr - $remote_user [$time_local] $request '
server
location / {
log_format jbxue007 '$remote_addr - $remote_user [$time_local] $request ' 通过upstream 名字 {}定义后端web的负载机器,然后在虚拟主机中通过 proxy_pass http://名字; 来使用upstream,再自定义一下日志格式,以获取用户的IP。
2、后端web配置:
复制代码代码示例:
server
if (-d $request_filename){ error_page 500 502 503 504 404 403 http://www.it.net.cn;
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://linux.it.net.cn;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
location ~ .*\.(js|css)?$ {
location ~ .*\.(log|txt)$
location ~ .*\.(php)?$ 附,Nginx负载的五种模式,即upstream的模式。
1、轮询(默认)
2、weight
复制代码代码示例:
upstream www.it.net.cn {
server 192.168.0.11 weight=10; server 192.168.0.12 weight=10; }
3、ip_hash
复制代码代码示例:
upstream www.jbxue.com {
ip_hash; server 192.168.0.11:80; server 192.168.0.12:80; }
4、fair(第三方)
5、url_hash(第三方)
复制代码代码示例:
upstream www.it.net.cn {
server 192.168.0.11:80; server 192.168.0.12:80; hash $request_uri; hash_method crc32; }
用得比较多得应该是第3、5这两种。 |