web-dev-qa-db-ja.com

単一サーバー、リバースプロキシとしてのnginx、複数のドメイン/ウェブサイト

Nginxがリバースプロキシサーバーとして使用されているhttps上の私のウェブサイトにこのnginx設定があります。

  server {
      listen 80 default_server;
      listen [::]:80 default_server;
      server_name my_domain123.com www.my_domain123.com;
      return 301 https://$server_name$request_uri;
  }

  server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name localhost www.my_domain123.com;
    return 301 https://my_domain123.com$request_uri;
  }

  server {
      listen 443 ssl default_server;
      listen [::]:443 ssl default_server;
      server_name my_domain123.com;

    location / {
      proxy_redirect      http://localhost:4000 https://my_domain123.com;
      # ...........................

    }

multipledifferentドメイン名のsame serverでWebサイトをホストできるようにするにはどうすればよいですか?構成のどこに、その新しいWebサイトの新しい構成を正確に挿入する必要がありますか?

それとも、サイトで利用可能/有効になっているサイトをもう1つ作成する必要がありますか? しかし、問題は残ります: 2つ以上の構成をどのように組み合わせることができます-同じサーバー、複数のドメイン-適切に?

4
Rakori

通常、新しいサーバー用の新しい設定ファイル/etc/nginx/sites-available/newserver.confを作成し、それを/ etc/nginx/sites-enabledからリンクします。 nginxをリバースプロキシとして使用するには、nginx(ssl_certificate、...)でSSLを構成し、場所セクションでlocalhostの非SSLサーバーにproxy_passを使用します。 proxy_redirectも必要ですが、非SSLローカルサーバーが送信する場合にのみLocationヘッダーを変更します。次の article に例があります。

異なるポートを使用するローカルホスト上の複数のhttpサーバー

    server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://localhost:8001 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://localhost:8002 https://mydomain-02.com;
      ...
    }
}

ホスト名ベースのサイトを使用するlocalhost上の単一のhttpサーバー

server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://s1.localdomain:4000 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://s2.localdomain:4000 https://mydomain-02.com;
      ...
    }
}
8
1Peter