web-dev-qa-db-ja.com

単一IPおよびnginxリバースプロキシを備えたVPS

単一のIPが割り当てられたVPSがあります。同じサーバーから多数のWebサイトにサービスを提供できるように、nginxリバースプロキシを設定します。

私の知る限り、さまざまなドメインが同じIPアドレスを指すことができます-サーバーのIPアドレス-nginxリバースプロキシはそれに渡されたドメイン名を使用して(?)、プロキシの後ろに座っている正しいウェブサイトを提供します。

これは正しいです?

各ドメインのネームサーバーを、サーバーのDNSサーバーを指すように、またはその逆に変更しますか?または、同じIPを指している異なるドメインがあるにはどうすればよいですか?

1
myol

ネームサーバーを変更する必要はまったくありません。これは、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;
}