Nginx动静分离+负载均衡配置+NginxStatus访问控制

Nginx Web默认发布静态页面,也可以均衡后端动态网站。

用户发起HTTP请求,如请求静态页面,Nginx直接处理返回;如请求动态页面,Nginx收到请求后会进行判断,转到后端服务器去处理。

Nginx实现负载均衡需要基于upstream模块,同时需要设置location proxy_pass转发指令实现。

Nginx应用负载均衡集群配置如下:

sn_test为负载均衡模块名称,必须与vhosts.conf或nginx.conf虚拟主机的proxy_pass段保持一致,否则不能将请求转发至后端的服务器

weight表示配置权重

max_fails表示nginx与后端服务器连接最大失败次数

fail_timeout表示nginx与后端服务器连接超时时间

在fail_timeout内检查max_fails次数

#配置负载均衡
upstream sn_test {
        url_hash;
server   192.168.41.129:8080  weight=1  max_fails=2  fail_timeout=15s;
server   192.168.41.130:8081  weight=1  max_fails=2  fail_timeout=15s;
}

#虚拟主机配置
server {
#侦听80端口
        listen       80;
        #定义使用www.scott.com访问
        server_name  www.scott.com;
        #设定本虚拟主机的访问日志
        access_log  logs/access.log  main;
root   /data/webapps/www;  #定义服务器的默认网站根目录位置
        index index.php index.html index.htm;   #定义首页索引文件的名称
        #默认请求
        location ~ /{
          root   /data/webapps/www;      #定义服务器的默认网站根目录位置
          index index.php index.html index.htm;   #定义首页索引文件的名称
          #以下是一些反向代理的配置.
  proxy_next_upstream http_502 http_504 error timeout invalid_header;
  #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。

          proxy_redirect off;
          #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr; #web服务器端获得用户的真实IP

          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  proxy_set_header X-jsession-id$cookie_JSESSIONID;

  proxy_set_header X-utsz-id  $cookie___utsz;
  proxy_set_header X-persistent-id  $cookie_SC_PERSISTENT;

  proxy_pass  http://sn_test;     #请求转向后端定义的均衡模块

       }
        # 定义错误提示页面
    error_page   500 502 503 504 /50x.html;  
            location = /50x.html {
            root   html;
        }
#配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root /data/webapps/www;
#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力,在浏览器保存该类型文件的天数。
expires      3d;
}

        #PHP脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ \.php$ {
            root /root;
            FastCGI_pass 127.0.0.1:9000;
            FastCGI_index index.php;
            FastCGI_param SCRIPT_FILENAME /data/webapps/www$FastCGI_script_name;
            include FastCGI_params;
        }
        #设定查看Nginx状态的地址及访问控制
        location /NginxStatus {
            stub_status  on;
            access_log  on;
            allow 192.168.134.0/24;
            allow 192.168.138.0/24;
            deny all;

        }
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值