特定のポートに関連付けられたWebサービスを特定のサブドメインに関連付ける
やりたいことは、今まで
http://sample.com:1234/ http://sample.com:8888/
にてアクセス可能であったWebサービスに、当該Webサービス自体を修正せずに、それぞれ
http://service0.sample.com/ http://service1.sample.com/
にてアクセス可能なようにすることです。
以下に説明するように、nginxのバーチャルホスト+リバースプロキシの機能を利用することにより、実現することができました。
前提
nginx
まずは、nginxをインストールします。
sudo apt install nginx
次に、以下のような内容の設定ファイルを作成します。 この設定ファイルは/etc/nginx/conf.d/
に作成する必要があり、ここでは/etc/nginx/conf.d/sample.conf
であるものとします。
server { listen 80; server_name service0.sample.com; location / { proxy_pass http://localhost:1234; } } server { listen 80; server_name service1.sample.com; location / { proxy_pass http://localhost:8888; } }
最後に、設定を反映させるべく、nginxを再起動します。
sudo systemctl restart nginx
DNS
忘れずに、service0.example.com
及びservice1.example.com
の名前解決ができるようにDNSを設定します。
DNSの設定については省略。