Nginx 使用 SSL 总是返回 301

Nginx 使用 SSL 总是返回 301

我正在尝试使用 SSL 设置 nginx,以提供一些静态 HTML 和一些 Python 脚本的输出(通过 uwsgi)。它在 HTTP 上运行良好,但我无法让它在 HTTPS 上运行,因为 nginx 返回“301 永久移动”,无论 URI 如何(即,即使对于那些不存在的 URI)。

我目前正在使用自签名证书,我的想法是强制使用 HTTPS 连接。我做错了什么?这看起来像是 nginx 配置问题吗?

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

server {
  listen 443 ssl;
  server_name myserver.com;
  ssl_certificate /srv/ssl/nginx.pem;
  ssl_certificate_key /srv/ssl/nginx.key;
  location / {
    rewrite ^ https://$server_name$request_uri? permanent;
  }
}

(显然,myserver.com代表实际的服务器名称)。

编辑: 错别字。

答案1

您的重写规则放错了位置:它(仅)适用于已经执行 SSL 的服务器块。您的浏览器可能已经抱怨永无止境的重定向。

将重写规则放入监听端口 80 的服务器块中,无需 SSL。

相关内容