Nginx 複数のバックエンドに転送するには?

ショコラ
ショコラ

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;
}

以上

Scroll to Top