You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多域名反向代理场景下NGINX HTTP转HTTPS重定向失败排查

解决NGINX端口80绑定失败及HTTP转HTTPS重定向问题

一、排查端口80占用情况

执行以下命令确认端口80的占用进程:

ss -tulpn | grep :80

或

netstat -tulpn | grep :80
  • 若输出显示非NGINX进程占用80,停止对应进程或修改其监听端口。
  • 若为NGINX自身占用,检查默认配置文件(如/etc/nginx/sites-enabled/default)或其他引入的配置片段,排查是否存在未发现的listen 80配置块。

二、配置HTTP转HTTPS重定向

方案1:分域名独立配置(精准控制)

给每个站点添加对应的80端口server块,放在现有HTTPS server块之前:

# website1 重定向
server {
    listen 80;
    server_name website1;
    return 301 https://$host$request_uri;
}

# website2 重定向
server {
    listen 80;
    server_name website2;
    return 301 https://$host$request_uri;
}

# website3 重定向
server {
    listen 80;
    server_name website3;
    return 301 https://$host$request_uri;
}

方案2:通用重定向(简洁高效)

用单个server块处理所有80端口请求,自动匹配对应域名跳转:

server {
    listen 80 default_server;
    server_name _; # 匹配所有访问80的域名
    return 301 https://$host$request_uri;
}

三、修复现有配置的隐性错误

检查你提供的配置,存在两处可能导致NGINX启动异常的问题:

  1. website1证书路径不完整:
    原配置中ssl_certificate /etc/letsencrypt/live/website1_ssl缺少证书文件名,应修正为:
    ssl_certificate /etc/letsencrypt/live/website1_ssl/fullchain.pem;
    
  2. website2证书路径错误:
    原配置中website2使用了website1的证书路径,应替换为website2自身的证书路径:
    ssl_certificate /etc/letsencrypt/live/website2/fullchain.pem;  
    ssl_certificate_key /etc/letsencrypt/live/website2/privkey.pem;
    

四、验证并重启NGINX

  1. 先验证配置语法正确性:
nginx -t
  1. 若测试通过,重启NGINX:
systemctl restart nginx

(非systemd系统可使用service nginx restart)


内容的提问来源于stack exchange,提问作者Andrew Simpson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:45:54