Django Как перенаправить только example.com на https и * .example.com на http? - PullRequest
0 голосов
/ 01 июля 2018

Мне нужно http://example.com для перенаправления на https://example.com. Принимая во внимание, что http://www.example.com, http://api.example.com не должны перенаправлять, т.е. субдомены не должны перенаправлять на https.

Я могу понять конфигурацию здесь, посмотрев на нее. Но не знаю двигаться дальше. Пожалуйста, помогите мне. Моя конфигурация до сих пор:

сайты-доступные / default.py

upstream app_server {
server unix:/home/django/gunicorn.socket fail_timeout=0;
}

server {
server_name example.com www.example.com cloud.example.com api.example.com; 
listen 80;
return 301 https://example.com$request_uri;
}

server {
server_name example.com www.example.com cloud.example.com api.example.com;

listen 443;  # <-

ssl on;  # <-
ssl_certificate /etc/ssl/example_cert_chain.crt;  # <-
ssl_certificate_key /etc/ssl/example.key;  # <-
#listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;

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/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 X-Forwarded-Protocol $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_buffering off;

        proxy_pass http://app_server;
}

}

1 Ответ

0 голосов
/ 01 июля 2018

Редактировать это:

server { 
    server_name example.com www.example.com cloud.example.com api.example.com;
    listen 80; 
    return 301 https://example.com$request_uri; 
}

В

server { 
    server_name example.com www.example.com cloud.example.com api.example.com;
    listen 80; 
    if ($http_host = "example.com") { 
        rewrite ^ https://example.com$request_uri permanent;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...