Назад | Перейти на главную страницу

Как использовать ssl везде, кроме конечной точки

У меня есть веб-сайт, на котором я хочу, чтобы все запросы выполнялись с помощью HTTPS, за исключением запросов к URL-адресам с путями, начинающимися с / out /.

nginx настроен как прокси для обслуживания содержимого gunicorn / django из http://127.0.0.1:8000.

вот конфигурация, которая у меня есть до сих пор, но кажется, что она нигде не использует ssl.

server {

listen 80;
listen 443 default ssl;
server_name my.website.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;

root /home/ubuntu/app;
client_max_body_size 1m;
access_log /home/ubuntu/app/logs/access.log;
error_log /home/ubuntu/app/logs/error.log;

location ~ ^/(out|out/.*)$ {
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    if (!-f $request_filename) {
        proxy_pass http://127.0.0.1:8000;
        break;
    }
}

location / {
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    if (!-f $request_filename) {
        proxy_pass http://127.0.0.1:8000;
        break;
    }
    if ($ssl_protocol = "") {
           rewrite  ^ https://$server_name$request_uri? permanent;
    }
}
}