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;
}