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;
}
答案1
您是否检查过 nginx 服务状态?其日志?
乍一看:你不能在同一个端口上同时拥有 http 和 https 监听器。
从您的配置中删除“邮件”代码段 - 或更改其 80 端口(https 通常使用 443)。重新启动 nginx,这应该可以修复您的 http 站点。