У меня есть веб-сайт, на котором я хочу, чтобы все запросы выполнялись с помощью 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;
...
}
}
Добавьте вторую запись сервера для non-ssl, порт 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;
}
}