负载平衡 - 使用 NGINX 的 Web 应用程序

Load Balancing - Web Applications with NGINX

我在 rails 上有一个未配置为多线程的 Web 应用程序 ruby。 在 nginx 配置中,我设置了一个上游块来进行负载平衡。 像这样:

upstream myapp {
  server 127.0.0.1:3075;
  server 127.0.0.1:3076;
  server 127.0.0.1:3077;
}

我还设置了 3 个带有 3 个端口 (3075,3076,3077) 的进程。

我想当我的第一个应用'127.0.0.1:3075'忙时,所有请求都会自动平衡到我的第二个应用'127.0.0.1:3076'或第三个。

但是负载平衡不起作用,即使我的三个 Web 应用程序 运行 正确独立。

请帮我找出错误。

-------------------- nginx 配置--------------------

upstream myapp_hosts {
    server  127.0.0.1:3075;
    server  127.0.0.1:3076;
    server  127.0.0.1:3077;
}

server {
    listen       80;
    server_name  myapp.mydomain.com;
    rewrite ^(.*)$ https://myapp.mydomain.com permanent; # rewrite for https, i have another bloc server listen 443.
    access_log /var/log/nginx/myapp.access.log;

    location / {
            proxy_pass         http://myapp_hosts/;
            proxy_connect_timeout   900;
            proxy_send_timeout      900;
            proxy_read_timeout      900;
            proxy_buffer_size   16k;
            proxy_buffers       32   16k;
            proxy_busy_buffers_size 64k;
    }
    location /public {
            root /var/www/nemo/;

    }
    location /images {
            root /var/www/nemo/assets/;

    }
    location /javascripts {
            root /var/www/nemo/assets/;

    }
    location /stylesheets {
            root /var/www/nemo/assets/;

    }

   client_max_body_size    10m;
   client_body_buffer_size 128k;
   client_header_buffer_size 64k;
}

你重写的目的是什么?

rewrite ^(.*)$ http://myapp.mydomain.com permanent;

看起来它会不断地根据这些规则将任何内容重定向到自身,从而导致重定向循环。您可能将此行与您在其他地方找到的 HTTPS 重定向配置混在一起了,也许?

尝试删除该行,看看是否有效。