同じサーバーには、domain1.comとdomain2.comという2つのドメインが接続されています。
これらのドメイン名を使用して2つの別々のWebサイトを構成しようとすると、nginxエラー500が発生します。
最初のドメインにnginxを設定しました。利用可能なサイトからプロファイルを作成し、それを有効なサイトにリンクしました。
以下は sites-available に保存され sites-enabled にリンクされた domain1.conf ファイルです。
server {
server_name domain1.com, www.domain1.com;
listen 80;
location / {
proxy_pass https://somehost/;
proxy_redirect default;
}
}
server {
server_name domain1.com, www.domain1.com;
listen 443 ssl;
location / {
proxy_pass https://somehost/;
proxy_redirect default;
}
ssl_certificate crt;
ssl_certificate_key key;
}
完璧に動作します。また、このプロファイルを使用してdomain2.comにアクセスしようとすると、domain1.comのコンテンツが表示されます。
利用可能なサイトでdomain2.confファイルを生成してアクティブなサイトに接続しようとすると、両方のサイトでnginxエラー500が発生します。
domain2.conf:
server {
server_name domain2.com, www.domain2.com;
listen 80;
location / {
proxy_pass https://someotherhost/;
proxy_redirect default;
}
}
server {
server_name domain2.com, www.domain2.com;
listen 443 ssl;
location / {
proxy_pass https://someotherhost/;
proxy_redirect default;
}
ssl_certificate crt;
ssl_certificate_key key;
}
また、これら2つのファイルを1つのdomain1-2.confファイルに入れようとすると、同じエラーが発生します。
利用可能なサイトとアクティブなサイトには他のファイルやリンクはありません。サーバーはubuntu20.04であり、単一のサーバーで複数のサイトを操作する必要があります。私は何が間違っていましたか?
修正する:
エラーは発生しません。警告のみ。ブラウザが domain2.com にアクセスしようとしたときに error.log に書き込まれる文字列です。
2023/06/19 13:07:00 [alert] 107176#107176: *110116 768 worker_connections are not enough while connecting to upstream, client: 123.456.789.000, server: domain1.com,, request: "GET / HTTP/1.0", upstream: "https://123.456.789.000:443/", host: "domain1.com"
2023/06/19 13:07:01 [alert] 107176#107176: *110880 768 worker_connections are not enough while connecting to upstream, client: 123.456.789.000, server: domain1.com,, request: "GET /favicon.ico HTTP/1.0", upstream: "https://123.456.789.000:443/favicon.ico", host: "domain1.com", referrer: "https://domain2.com/"
答え1
コメントをいただいた@Richard Smithに感謝します。問題は、カンマ区切りのserver_nameディレクティブにあります。
nginx -t
このエラーは私には表示されません。
server {}
nginxは、両方のファイルのすべてのディレクティブを読み取り、ディレクティブserver_name
にカンマがあるため、ディレクティブを無視するようです。これがエラー500が発生する理由です。