nginx[emerg]duplicate listen options for 0.0.0.0:443エラー

2030 ワード

今日1つのシステムをテスト服に提出して、テスト服phpバージョン7.2、laravelの8.0は7.3以上で、テスト服のプロジェクトは多すぎて、まだ多くの古いプロジェクトがあって、簡単にアップグレードすることができなくて、1つのあまり重要ではないプロジェクトの機械の上に置くつもりで、彼ら2人は1台の機械を共用して、あのphpバージョンは比較的に高いです
操作は直接パブリケーションシステムを確立し、コードを新しいサーバに更新することです.
それからドメイン名を解析して、copynは1つのnginxの配置を出して、ドメイン名、経路とログを修正して、タイムズnginx for 0.0.0.0:443エラーを再起動して、nginx:[emerg]duplicate listen options for 0.0.0.0:443 in/nginx/conf.d/xxx.com.conf:3
調べてみると、重複する選択肢のようですが、どこが重複しているのでしょうか.
default_server、直接copyの最初のサイト、2番目の変更時にdefault_もありますserver
デフォルトのサーバは1つしかありません
default_が存在する場合サーバパラメータは、サーバを指定したアドレス:ポートペアのデフォルトサーバにします.
さらに、listen命令は、ソケットに関連するシステム呼び出しに固有のいくつかの追加パラメータを有することができる.これらは、任意のリスニングコマンドで指定できますが、指定されたアドレス:ポートペアは1回のみ指定できます.
したがって、2番目のサイトのdefaultを削除し、問題を解決しようとします.
参照先:https://github.com/alibaba/te...
 :

 

server {
    listen 443 ssl http2 fastopen=3;
    server_name  www.example.me;

     default,  

server {
    listen 443 default ssl http2 fastopen=3;
    server_name  www.example.me;

  listen 443 ssl   ssl  ,   listen 443  

server {
    listen 443;
 ,  

参照2原文アドレス:http://mailman.nginx.org/pipe...
Socket can't be in ssl mode for some servers and in non-ssl for 
others, so there is no need to specify "ssl" argument for 
non-default servers.  I.e. this will work with ssl in both 
servers:

server {
    listen 443 default ssl;
    ...
}

server {
    listen 443;
    ...
}

In your first configuration nginx was able to detect that you used 
meaningless "ssl" argument in second server and complained.  In 
second configuration it wasn't able to detect meaningless "ssl 
on;" statement.  This is the only difference.

Maxim Dounin