ショコラ
Nginx 複数のバックエンドに転送するには?
upstream backend_servers で複数のバックエンドを定義して、proxy_pass で転送します。
もっさん先輩
server
{
listen 80 default_server;
server_name _;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
# 特定のIPからのアクセスは特定のバックエンドに送信する。
set $backend "backend_servers";
if ($remote_addr = 152.165.48.21) {
set $backend "10.10.10.11:80";
}
location / {
proxy_pass http://$backend;
}
}
upstream backend_servers
{
server backend1_ip:backend_port;
server backend2_ip:backend_port;
server backend3_ip:backend_port;
}
以上