【Nginx】负载均衡的配置



    使用nginx可以方便的进行负载均衡的配置,可以将nginx用作反向代理负载均衡转发所有请求,也可以只是负载均衡cgi请求。

    1、负载均衡转发所有请求,使用proxy_pass配置;这里事先配置好其他web server



    http {
        upstream servers {
            server servers1.com;
            server servers2.com;
            server servers3.com;
        }
    
        server {
            listen 80;
    
            location / {
                proxy_pass http://servers;
            }
        }
    }

    2、负载均衡转发cgi请求,使用fastcgi_pass配置;这里可以在同一台服务器上启动两个php-fpm(性能上比一个处理得快),nginx转发cgi请求时做负载均衡

    http {
    upstream  phpfpm{
    server 127.0.0.1:9000;
    server 127.0.0.1:9001;
    server 192.168.1.2:9000;
    }

    server {
    listen 80;

    location ~ .+\.php($|/) {
    root           /data/www;
    fastcgi_index  index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO               $fastcgi_path_info;
    fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;
    fastcgi_pass   phpfpm;
    include        fastcgi_params;
    }
    }
    }[/code]

    3、负载均衡规则的设置,即upstream参数配置

    • server后可以是ip:port,也可以是域名
    • 转发规则默认是轮训规则,也可以增加配置:least_conn;最少链接;ip_hash; IP Hash规则;server配置后增加weight=2参数,按权重转发

    参考:Nginx负载均衡的4种方案配置实例

    4、一台服务器多个php-fpm的配置

    复制之前的php-fpm.conf成新的配置文件php-fpm.9001.conf,修改以下配置;如果nginx和php-fpm不在同一台服务器上,那么注意修改listen和listen.allowed_clients参数;之后使用php-fpm -y php-fpm.9001.conf就可以启动一个新的php-fpm了

    pid = run/php-fpm.9001.pid
    listen = 127.0.0.1:9001
    listen.allowed_clients = 127.0.0.1

    参考:php-fpm 启动参数及重要配置详解

    5、使用建议

    如果是高并发的情况下,建议使用1台nginx专门做负载均衡,web主机上每台启动多个php-fpm做请求处理。

    nginx支持FastCGI, uwsgi, SCGI,memcached的负载均衡,只需将 proxy_pass改为fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass即可

     

    参考:

    1. 高流量站点NGINX与PHP-fpm配置优化
    2. 利用Nginx做负载均衡
    3. 使用Nginx实现负载均衡


    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【Nginx】负载均衡的配置
    标签:
    分享:

还没有人抢沙发呢~

无觅相关文章插件,快速提升流量