Вимкнути SSL для певних контурів у Nginx


11

У мене є веб-сайт, на якому я хочу, щоб усі запити виконувалися за допомогою HTTPS, за винятком запитів до URL-адрес із шляхами, які починаються з /foo/. Як налаштувати це в Nginx?

Зараз я запускаю всі запити за допомогою SSL:

server {
    listen 443;

    ssl on;
    ssl_certificate /home/admin/ssl/ssl.crt;
    ssl_certificate_key /home/admin/ssl/ssl.key;

    server_name www.mydomain.com;

    location / {
        proxy_pass http://localhost:8000;
        ...
    }
}

Ви хочете змусити запити до цього шляху не використовувати SSL або дозволити запитам не використовувати SSL?
Шейн Мадден

Я хочу дозволити запити на цьому шляху використовувати HTTP та HTTPS.
hekevintran

Відповіді:


15

Додайте другий запис сервера для non-sl, порт 80, що обслуговує /foo/*та перенаправляє все інше до URL-адреси HTTPS.

Може щось подібне ?:

server {
    listen      80;
    server_name www.example.com;

    location ~ ^/(foo|foo/.*)$ {
        proxy_pass http://localhost:8000;
        ... 
    }

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}

Ідеальна відповідь.
hekevintran
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.