今天部署了nacos集群,使用nginx做负载均衡。
之前自己测试的时候都好好的,但一部署,小组其他人的项目也注册到nacos中后,nginx就变得非常容易报502 bad gateway。
进入nginx容器查看了一下日志:

2020/04/21 10:30:45 [error] 5#5: *1922 upstream timed out (110: Connection timed out) while reading response header from upstream, client: IP, server: IP, 
request: "POST /nacos/v1/cs/configs/listener HTTP/1.1", upstream: "http://IP:8848/nacos/v1/cs/configs/listener", host: "IP:1111"

网上查了一下,说是缓存或者读取时间设置的太小。就跟着配置了一下

1.使用docker-compose创建镜像。
初始化文件:

nginx:
  restart: always
  image: nginx:1.17
  container_name: nginx
  ports:
    - 1111:1111
  volumes:
    - /home/nginx/nginx.conf:/etc/nginx/nginx.conf
  ulimits:
    nproc: 65535
    nofile:
      soft: 65535
      hard: 65535

2.nginx配置文件,在server中加上下面这些

server{
	……
	arge_client_header_buffers 4 16k;     # 读取大型客户端请求头的缓冲区的最大数量和大小
    client_max_body_size 300m;     #设置nginx能处理的最大请求主体大小。
    client_body_buffer_size 128k;  #请求主体的缓冲区大小。 
		
	fastcgi_connect_timeout 300;
	fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
	fastcgi_buffer_size 64k;
    fastcgi_buffers 8 32k;
    fastcgi_busy_buffers_size 128k;
	fastcgi_temp_file_write_size 64k;
	……
}

这些配置好后,再测试了下就没有再502了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐