web-dev-qa-db-ja.com

nginxと複数のサーバーを使用してポート80から443にリダイレクトします

まず、私はnginxに少し慣れておらず、少し迷っています…残念ながら、これに対する解決策が見つからなかったので、ここに私の問題があります。既存の質問と重複している場合は、お詫び申し上げます。回答をいただければ幸いです。

私は最初のnginxサーバーを構築していて、2つのドメイン名があります。そのうちの1つにはたくさんのサブドメインがあり、これらすべてにSSLリダイレクトを設定したいと思います。問題は、IPv6リッスン(ここではデフォルトの構成)で1回だけ機能し、同じ構成を他のサブドメインに配置するとnginxが起動しないことです(各サブドメインには、独自の80→443を持つ独自のサーバー構成ファイルがあります)サーバーリダイレクト)。

server {
listen 443;
listen [::]:443;

## All the config and stuff

}

server {
listen      80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name www.mydomainna.me mydomainna.me;
rewrite     ^   https://$server_name$request_uri? permanent;
}

これはデフォルトの設定ファイルであり、魅力のように機能します。

しかし、これは私を悩ませていることです、すべての単一のサブドメインと私の2番目のドメイン名のこれとまったく同じ構成(default_serverを除く)で、IPv6を削除する必要があるか、nginxを開始したくないということです。

server {
listen 443;
listen [::]:443;

## All the config and stuff

}

server {
listen      80;
server_name subdomain.mydomainna.me;
rewrite     ^   https://$server_name$request_uri? permanent;
}

だからここでの私の質問は:他のすべての設定ファイルをIPv6でリッスンするように指示するにはどうすればよいですか?

私の質問を適切に説明しなかった場合、そしてあなたの誰かが解決策を持っている場合は、申し訳ありません、ありがとう。

2

このページ によると、以下の行はNginxにIP4とIP6の両方をポート80でリッスンするように指示しています。

listen [::]:80 default_server;

Nginxにポート443でリッスンするように指示する2つのディレクティブがあります。これが、重複したリッスンメッセージを受け取る理由です。下の最初の行を削除するだけで、機能するはずです。

listen 443;
listen [::]:443;

Googleで2分間過ごすまで、NginxIP6について何も知らなかったことに注意してください。非常に少量の研究でこの解決策が明らかになりました。

4
Tim