我正在尝试使用 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。