まず、私は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でリッスンするように指示するにはどうすればよいですか?
私の質問を適切に説明しなかった場合、そしてあなたの誰かが解決策を持っている場合は、申し訳ありません、ありがとう。
このページ によると、以下の行はNginxにIP4とIP6の両方をポート80でリッスンするように指示しています。
listen [::]:80 default_server;
Nginxにポート443でリッスンするように指示する2つのディレクティブがあります。これが、重複したリッスンメッセージを受け取る理由です。下の最初の行を削除するだけで、機能するはずです。
listen 443;
listen [::]:443;
Googleで2分間過ごすまで、NginxIP6について何も知らなかったことに注意してください。非常に少量の研究でこの解決策が明らかになりました。