web-dev-qa-db-ja.com

Nginxのサブドメインに応じて異なる場所にプロキシをリバースする方法は?

複数のサブドメインがあり、すべて1つのマシンと1つのIPアドレスをポイントしています。このマシンでは、nginxをリバースプロキシとして機能させ、マシンへのアクセスに使用したサブドメインに応じて、別のサーバーへのリバースプロキシを設定します。 nginxをリバースプロキシとして使用した例はすべてlocationを使用していますが、これはパスでのみ機能し、異なるサブドメインでは機能しないことを理解しています。どうすれば自分のやりたいことを達成できますか?

12
markasoftware

私が完全にあなたの質問を誤解しない限り:あなたは単に各サブドメインのサーバーブロックを設定し、そのサブドメインのルートに正しいリバースプロキシを定義します。

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }
26
HBruijn

ほぼ同じです。

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
3
drookie