nginx串联(一台反向代理,一台分发)引起问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx串联(一台反向代理,一台分发)引起问题相关的知识,希望对你有一定的参考价值。
参考技术A 在工作中遇到nginx串联的502问题由于历史原因会出现既有域名访问接口,也有ip+端口号访问接口,也有域名+端口号访问接口
简单介绍下大概架构如下(全是docker部署的)
一台nginx作为主机,用来反向代理域名到ip+端口号,并配置两个nginx连接池(一主一备)
proxy_params内容如下:
上面这样配置后会导致如下问题
1). 访问不存在的uri时并不会立即返回404,虽然后面的nginx会返回404,但主nginx会显示500
2). 偶尔会出现502 no live upstream while conneting to upstream,client: XXX.XXX.XXX.XXX,server:localhost,request:"GET uri HTTP/1.1", upstream:" http://WEB_NGINX_POOL/ " host:"host"
一台Nginx服务器反向代理多个80端口服务器
主要是实现公网IP越来越不足的情况,80端口又是常用端口,只好用Nginx来代理。
Nginx服务器安装采用编译:
1.pcre 、openssl 、zlib
2.其他依赖包
配置Nginx主配置文件nginx.conf ,请先备份nginx.conf。
** vim nginx.conf**
user cent cent;
worker_processes auto;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server_tokens off; #关闭nginx版本
client_max_body_size 50m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户
client_body_buffer_size 256k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_send_timeout 300s;
proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
proxy_ignore_client_abort on; #不允许代理端主动关闭连接
include /opt/app/nginx/proxy_conf/*.conf; #添加反向代理配置文件,方便管理
}
配置代理文件proxy.conf。单独放开方便以后增加服务器
vim /opt/app/nginx/proxy_conf/proxy.conf
server
{
listen 80;
server_name www.xxx.com.cn;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ip:80;
}
access_log logs/xxx_access.log;
}
以上是关于nginx串联(一台反向代理,一台分发)引起问题的主要内容,如果未能解决你的问题,请参考以下文章
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点