Nginx

Nginx 沒有正確監聽 80 埠

  • December 4, 2019

Nginx 似乎只監聽 HTTPS。這是埠 80 的根配置,它不起作用(無響應)。我有兩個單獨配置的子域,其中一個確實接收 HTTP 請求(mail.example.de)

雲:

server {
   listen 80;
   listen [::]:80;
   server_name cloud.example.de;
   # enforce https
   return 301 https://$server_name$request_uri;
}

郵件:

server {
   listen 80 ssl;
   listen [::]:80 ssl;

   ssl_certificate /etc/letsencrypt/live/mail.example.de/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/mail.example.de/privkey.pem;

   server_name mail.example.de;

   location / {
     proxy_pass http://127.0.0.1:480;
   }

   location /.well-known {
     root /var/www/letsencrypt;
   }
}

根:

server {
 listen 80 default_server;
 listen [::]:80;
 server_name *.example.de example.de;
 return 301 https://$host$request_uri;
}

我覺得這沒有發送任何回復有點奇怪,所以我嘗試了

server {
 listen 80 default_server;
 listen [::]:80;
 server_name *.example.de example.de;
return 200 'Response!';
add_header Content-Type text/plain;

}

你檢查過 nginx 服務狀態嗎?它的日誌?

乍一看:你不能在同一個埠上同時擁有 http 和 https 偵聽器。

從您的配置中刪除“郵件”片段 - 或更改其 80 埠(無論如何,https 通常使用 443)。重新啟動 nginx,這應該會修復您的 http 站點。

引用自:https://serverfault.com/questions/994361