负载平衡 - 使用 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 重定向配置混在一起了,也许?
尝试删除该行,看看是否有效。
我在 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 重定向配置混在一起了,也许?
尝试删除该行,看看是否有效。