5つのnodejsアプリケーションをデプロイしたサーバーに専用サーバーが1つあります。
domain name: www.nnd.com
dedicated server ip: xxx.xx.x.60
私の専用サーバーIPを指すドメインがありました。
サブドメインは次のとおりです。
app1.nnd.com pointed to xxx.xx.x.60
app2.nnd.com pointed to xxx.xx.x.60
app3.nnd.com pointed to xxx.xx.x.60
app4.nnd.com pointed to xxx.xx.x.60
app5.nnd.com pointed to xxx.xx.x.60
プロキシをルーティングする必要があるサブドメインに基づいてnginx構成ファイルになりました。例:
{
listen:80;
server_name:xxx.xx.x.60
location / {
#here based on subdomain of the request I need to create proxy_pass for my node application
}
}
条件はありますか?プロキシヘッダーから元のドメイン名を取得するにはどうすればよいですか?
それぞれの仮想ホストを作成します
server {
server_name sub1.example.com;
location / {
proxy_pass http://127.0.0.1:xxxx;
}
}
server {
server_name sub2.example.com;
location / {
proxy_pass http://127.0.0.1:xxxx;
}
}
続けて、正しいポートに一致するようにポート番号を変更します。
RegExpを使用して、このようなホスト名を取得できます
server {
server_name ~^(www\.)?(?<domain>.+)$;
location / {
root /sites/$domain;
}
}
サブドメインごとに仮想ホストを作成できます。
Exの場合、2つのサブドメインabc.xyz.comとabcd.xyz.comがあり、proxy_passによってnginxの単一インスタンスでホストしたいすべてのサブドメインに仮想ホストを作成できます
server {
server_name abc.xyz.com;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
server {
server_name abcd.xyz.com;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
詳細については、 here を参照してください。