【问题标题】:nGinx load balancing not workingnGinx 负载平衡不起作用
【发布时间】:2023-03-14 19:25:01
【问题描述】:

在过去的几天里,我一直在努力解决负载平衡问题,但遇到了一些障碍。我以为我已经正确设置了所有内容,但似乎我仍然通过我的主服务器获得了几乎所有的流量,而我设置的权重应该是 1:10 发送到主服务器。

我当前的负载均衡器配置:

upstream backend {
        least_conn;
        server 192.168.x.xx weight=10 max_fails=3 fail_timeout=5s;
        server 192.168.x.xy weight=1 max_fails=3 fail_timeout=10s;
}
server {
listen 80;
  server_name somesite.somesub.org www.somesite.somesub.org;
    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host somesite.somesub.org;
      proxy_pass http://backend$request_uri;
    }
}
server {
listen 443;
  server_name somesite.somesub.org www.somesite.somesub.org;
    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host somesite.somesub.org;
      proxy_pass http://backend$request_uri;
    }
}

而我目前的网站配置如下:

server {
  listen 192.168.x.xx:80;
  server_name somesite.somesub.org;
  index index.php index.html;
  root /var/www/somesite.somesub.org/html;
  access_log /var/www/somesite.somesub.org/logs/access.log;
  error_log /var/www/somesite.somesub.org/logs/error.log;
  include snippets/php.conf;
  include snippets/security.conf;
  location / {
    #return 301 https://$server_name$request_uri;
  }
}

server {
  listen 192.168.x.xx:443 ssl http2;
  server_name somesite.somesub.org;
  index index.php index.html;
  root /var/www/somesite.somesub.org/html;
  access_log /var/www/somesite.somesub.org/logs/access.log;
  error_log /var/www/somesite.somesub.org/logs/error.log;
  include snippets/php.conf;
  include snippets/security.conf;
  include snippets/self-signed-somesite.somesub.org.conf;
}
~

其他配置完全一样,只是IP地址不同。

一个可能重要也可能不重要的小细节:其中一个节点托管在负载平衡器的同一台机器上 - 不确定这是否重要。

两台机器都有正确的防火墙配置,可以单独访问。

没有错误日志显示任何有用的东西。

我能想到的唯一可能的事情是 nginx 站点配置在负载均衡器之前提供;我不知道如何解决这个问题。

【问题讨论】:

    标签: nginx server load-balancing


    【解决方案1】:

    再次查看配置并意识到我可以轻松地让负载均衡器上的站点配置在 127.0.0.1 上侦听并将其重新列在负载均衡器中的可用服务器中。

    在 localhost:80/443 上监听负载均衡器的站点的 nGinx 配置解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2012-12-19
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多