単一のIPが割り当てられたVPSがあります。同じサーバーから多数のWebサイトにサービスを提供できるように、nginxリバースプロキシを設定します。
私の知る限り、さまざまなドメインが同じIPアドレスを指すことができます-サーバーのIPアドレス-nginxリバースプロキシはそれに渡されたドメイン名を使用して(?)、プロキシの後ろに座っている正しいウェブサイトを提供します。
これは正しいです?
各ドメインのネームサーバーを、サーバーのDNSサーバーを指すように、またはその逆に変更しますか?または、同じIPを指している異なるドメインがあるにはどうすればよいですか?
ネームサーバーを変更する必要はまったくありません。これは、DNSプロバイダーを変更する場合にのみ関係します。
Webサイトごとに、A
レコードをルートドメインからサーバーのIPアドレスに追加し、A
レコードをwww
サブドメインからサーバーのIPアドレスに追加します。
誰かがあなたのドメインの1つにリクエストを行うと、リクエストは通信したいドメインを示すHTTP Host
ヘッダーとともにnginxに届きます。 nginx構成ファイルでは、次のようにHost
ヘッダーに応じてリクエストをプロキシするように仮想サーバーを設定する必要があります。
server {
listen 80;
server_name example1.com;
location / {
proxy_pass http://127.0.0.1:8080; # The port that web service 1 is running on
}
}
server {
listen 80;
server_name example2.com;
location / {
proxy_pass http://127.0.0.1:8181; # The port that web service 2 is running on
}
}
次のように、ベアドメインからwwwへのリダイレクト、またはwwwからベアドメインへのリダイレクトを設定することもできます。
server {
listen 80;
server_name example1.com;
return 301 http://www.example1.com$request_uri;
}
server {
listen 80;
server_name example2.com;
return 301 http://www.example2.com$request_uri;
}