我试图在 https 而不是 http 上运行网站,因此创建了一个重定向。目前网站在 https 地址工作。如果我输入 http 地址,则会重定向到 https,但它说找不到服务器。我究竟做错了什么?评论是我也尝试过的。我真的不明白为什么 server_name
在第二个配置中是 _
(有效),因为它是 VPS 上预装的图像配置
upstream app_server {
server unix:/home/django/gunicorn.socket fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
#listen 80;
#server_name solomon;
#return 301 https://closer.com$request_uri;
#server_name solomon;
#listen 80;
#return 301 https://closer.com;
}
server {
#listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
listen 443;
ssl on;
ssl_certificate /etc/ssl/simple_academy_cert_chain.crt;
ssl_certificate_key /etc/ssl/server.key;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
# Your Django project's media files - amend as required
location /media {
alias /home/django/django_project/django_project/media;
}
# your Django project's static files - amend as required
location /static {
alias /home/django/django_project/static;
}
# Proxy the static assests for the Django Admin panel
location /static/admin {
alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://app_server;
}
}
最佳答案
这是我在服务器上处理它的方式:
server {
listen 80;
server_name mysite.com www.mysite.com;
return 301 https://$server_name$request_uri;
}
所有 HTTP 流量都被重定向到 HTTPS。
关于django - 从 https 重定向到 https 不起作用。找不到服务器,nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996392/