nginx 负载平衡 - 我是否必须拥有 API 的多个副本?
nginx load balancing - do I have to have multiple copies of my API?
我想使用 NGINX
对我的 Parse API 进行负载平衡
我的 API 当前在一台服务器上的 nginx 上运行,如果我想对其进行负载平衡,我是否必须在每台主机上托管我的 API?
我希望它看起来像这样
---------- /----- [ api-0.myhost.com ]
| client | --------> [ api.myhost.com ] ----- [ api-1.myhost.com ]
---------- \----- [ api-2.myhost.com ]
在这种情况下,我是否必须安装 nginx 并将我的 API 部署到非常 api-X.myhost.com
?
或者我只是在 api.myhost.com
和 api-X.myhost.com
上部署我的 API 我只是安装 nginx?
您只需在 api.host.com 上安装 nginx,然后配置 nginx 以实现负载平衡,如下所示:
upstream api-app {
least_conn;
server api-0.myhost.com:port weight=1 max_fails=1;
server api-2.myhost.com:port weight=1 max_fails=1;
server api-3.myhost.com:port weight=1 max_fails=1;
}
server {
listen 80;
listen 443 ssl;
server_name api.myhost.com;
ssl_certificate /etc/ssl/certs/api_ssl-bundle.crt;
ssl_certificate_key /etc/ssl/private/api_com.key;
client_max_body_size 2000M;
large_client_header_buffers 32 128k;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffers 64 128k;
proxy_buffer_size 256k;
proxy_pass http://api-app;
proxy_connect_timeout 1200;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
port
是您的 api-app 在其主机上侦听的端口。
我想使用 NGINX
对我的 Parse API 进行负载平衡我的 API 当前在一台服务器上的 nginx 上运行,如果我想对其进行负载平衡,我是否必须在每台主机上托管我的 API?
我希望它看起来像这样
---------- /----- [ api-0.myhost.com ]
| client | --------> [ api.myhost.com ] ----- [ api-1.myhost.com ]
---------- \----- [ api-2.myhost.com ]
在这种情况下,我是否必须安装 nginx 并将我的 API 部署到非常 api-X.myhost.com
?
或者我只是在 api.myhost.com
和 api-X.myhost.com
上部署我的 API 我只是安装 nginx?
您只需在 api.host.com 上安装 nginx,然后配置 nginx 以实现负载平衡,如下所示:
upstream api-app {
least_conn;
server api-0.myhost.com:port weight=1 max_fails=1;
server api-2.myhost.com:port weight=1 max_fails=1;
server api-3.myhost.com:port weight=1 max_fails=1;
}
server {
listen 80;
listen 443 ssl;
server_name api.myhost.com;
ssl_certificate /etc/ssl/certs/api_ssl-bundle.crt;
ssl_certificate_key /etc/ssl/private/api_com.key;
client_max_body_size 2000M;
large_client_header_buffers 32 128k;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffers 64 128k;
proxy_buffer_size 256k;
proxy_pass http://api-app;
proxy_connect_timeout 1200;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
port
是您的 api-app 在其主机上侦听的端口。