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

Nginx配置无法强制HTTP重定向至HTTPS的问题求助

Nginx HTTP强制跳转HTTPS配置修复

你的配置存在三个关键问题导致重定向失效:

  • 同一个server块同时监听80(HTTP)和443(HTTPS)端口,重定向规则会被HTTPS请求误触发
  • 使用了未定义的变量$mydomain.com,Nginx无法解析该变量
  • 80端口的server块中多余的location /配置,return指令会直接返回响应,后续配置不会执行

修复后的配置需要拆分两个独立的server块,分别处理HTTP重定向和HTTPS请求:

# 处理所有HTTP请求,强制跳转至HTTPS
server {
    listen 80;
    server_name www.mydomain.com mydomain.com;
    # $host会保留原请求的域名(www或非www),确保跳转后域名一致
    return 301 https://$host$request_uri;
}

# 处理HTTPS请求,提供实际服务
server {
    listen 443 ssl;
    server_name www.mydomain.com mydomain.com;

    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location / {
        proxy_pass http://unix:/home/mydomain/gunicorn.sock;
    }
}

额外说明

  • 若希望统一跳转至非www的HTTPS地址,可将第一个server块的return语句改为:return 301 https://mydomain.com$request_uri;
  • 修改配置后,先执行nginx -t验证语法正确性,再执行systemctl reload nginx重载Nginx使配置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:55:20