在我的Nginx服务器中,我会将所有HTTP传入请求重定向到https。 我使用gunicorn,并将我设置为/位置代理127.0.0.1:8080 我的nginx.conf配置文件的一部分是:
server {
listen 80;
listen 443 default ssl http2;
ssl_certificate /var/www/web/core/mycert.crt;
ssl_certificate_key /var/www/web/core/mykey.key;
server_name ~^(?<subdomain>\w+)\.mydomain\.io$;
root /var/www;
return 301 https://$server_name$request_uri;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /static/ {
alias /var/www/web/core/frontend/static/;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
#add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
proxy_set_header X-DTS-SCHEMA $subdomain;
}
但是当我尝试打开页面的http版本时,出现“许多重定向错误” 我还尝试添加代理指令:
proxy_redirect http:// https://;
但什么也没发生。
我如何每次都能将代理请求重定向到https?
预先感谢
答案 0 :(得分:1)
您的代码中有一个大错误,您不能像以前那样这样做:
return 301 https://$server_name$request_uri;
如果您希望这样使用,则应拆分http和https服务器。读取文件时,您每次到达虚拟主机时都只是重定向,这导致了太多的重定向。
如果您已经在https ...
中,也可以为返回条件设置条件,使其不执行。