文章内容

2019/1/23 14:27:52,作 者: 黄兵

Nginx 多上游服务器问题

最近访客大增,网站服务器变得有些不稳定,因此需要扩展服务器数量,准备采用腾讯云的负载均衡,很费钱。作为一个个人开发者,很不划算,看了一下Nginx的文档,也可以做负载均衡。

现在有多个web服务器作为上游服务器,在nginx可以通过upstream来声明,定义多个server,具体写法如下:

upstream app{
	server 127.0.0.1:5000;
	server 134.175.155.xxx:8000; 
}
server {
  listen 80;
  listen [::]:80 ssl ipv6only=on;
  listen 443 ssl;
  listen [::]:443 ssl ipv6only=on;
  server_name www.xxx.com;

  location / {
      	try_files $uri @gunicorn_proxy;
  }

  location @gunicorn_proxy {
      	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      	proxy_set_header Host $http_host;
      	proxy_redirect off;
      	proxy_pass http://app;
      	proxy_connect_timeout 500s;
      	proxy_read_timeout 500s;
      	uwsgi_buffers 16 16k;
      	uwsgi_buffer_size 32k;
      	proxy_send_timeout 500s;
  }
}

主要是注意proxy_pass的写法,本来在这篇文章:全面了解 Nginx 到底能做什么没搞明白,现在完全搞清楚了。

使用这个种方式,nginx将会通过轮询的方式连续的请求传递给3个上有服务器,在一个应用程序仅处理一个请求时,这个配置很有用。


参考资料:《精通Nginx》(第2版)[瑞士]Dimitri Aivaliotis 著,李红军 译


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Nginx 多上游服务器问题

分享到:

发表评论

评论列表