发布于 

Nginx配置反向代理

Nginx配置反向代理

简单配置

#1.进入nginx配置文件夹
cd /etc/nginx/conf.d
#2.创建或打开nginx.conf文件进行配置
vim nginx.conf

将下面的代码复制进nginx.conf文件

#反向代理tomcat
server {
#    监听端口80 即当访问服务器的端口是80时,进入这个server块处理
        listen       80;
# server_name当配置了listen时不起作用        
        server_name  xxx.xxx.xxx.xxx;
# location后面代表访问路径 当是/ 请求时 代理到tomcat的地址
        location / {
# 使用 proxy_pass(固定写法)后面跟要代理服务器地址            
            proxy_pass http://xxx.xxx.xxx.xxx:8080;
        }
}

刷新配置或重启

cd /usr/local/nginx/sbin
./nginx -s reload
或者
systemctl restart nginx.service

转发http长连接

#nginx默认配置文件中相关配置,影响client到nginx的长连接
http {
keepalive_timeout 120s;        #客户端链接超时时间。为0的时候禁用长连接。
keepalive_requests 10000;    #在一个长连接上可以服务的最大请求数目。
                             #当达到最大请求数目且所有已有请求结束后,连接被关闭。
                             #默认值为100
}

#反向代理的配置,影响nginx到server的长连接
upstream backend {
  server 192.168.0.1:8080;
  keepalive 300; // 连接池里面最大的空闲连接数量
} 
server {
    listen 8080;
    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;              # 设置http版本为1.1
        proxy_set_header Connection "";      # 设置Connection为长连接(默认为no)
        }
}

负载均衡

#1.进入nginx配置文件夹
cd /etc/nginx/conf.d
#2.打开nginx.conf文件进行配置
vim nginx.conf

将下面的代码复制进nginx.conf文件

#负载均衡
upstream tomcats {
    server 127.0.0.1:9001;
    server 127.0.0.1:9002;
}
server {
        listen       80;
        server_name  xxx.xxx.xxx.xxx.109;

        location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
               proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://tomcats;
        }
}

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

  • down:表示单前的server暂时不参与负载.
  • weight:默认为1.weight越大,负载的权重就越大。
  • max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
  • fail_timeout : max_fails次失败后,暂停的时间。
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
upstream tomcats{
      server 127.0.0.1:9001 down;
      server 127.0.0.1:9002 backup;
      server 127.0.0.1:9003 weight=2;
      server 127.0.0.1:9004 max_fails=2 fail_timeout=60s;   
}