複数のサブドメインがあり、すべて1つのマシンと1つのIPアドレスをポイントしています。このマシンでは、nginxをリバースプロキシとして機能させ、マシンへのアクセスに使用したサブドメインに応じて、別のサーバーへのリバースプロキシを設定します。 nginxをリバースプロキシとして使用した例はすべてlocation
を使用していますが、これはパスでのみ機能し、異なるサブドメインでは機能しないことを理解しています。どうすれば自分のやりたいことを達成できますか?
私が完全にあなたの質問を誤解しない限り:あなたは単に各サブドメインのサーバーブロックを設定し、そのサブドメインのルートに正しいリバースプロキシを定義します。
server {
server_name subdomain1.example.com;
location / {
proxy_pass http://hostname1:port1;
}
}
server {
server_name subdomain2.example.com;
location / {
proxy_pass http://hostname2:port2;
}
}
ほぼ同じです。
location /foo {
rewrite ^/foo(.+)$ /$1 break;
proxy_pass http://foo;
}
location /bar {
rewrite ^/bar(.+)$ /$1 break;
proxy_pass http://bar;
}