Nginx как прокси: как исключить определенную папку под https, но не под http - PullRequest
0 голосов
/ 26 мая 2019

Я могу переписать некоторые определенные папки http в папки https, но я не могу переписать все https, кроме этих определенных папок с https на http; я застрял в петле

Использование NGinx 1.12 в качестве прокси-сервера, обработка http и https

У меня есть одна секция сервера для обработки http 80 и одна секция сервера для обработки https (я знаю, что они могут быть вместе в одном разделе).

они оба начинают так location / { proxy_pass

server { listen 80; я имею location ~ ^/(xxx|yyy|zzz)/.*$ { rewrite ^ https://www.example.com$uri permanent; } и всякий раз, когда я нахожусь в http, он перенаправляет на https нормально для папок xxx, yyy и zzz. пока все хорошо.

но под server { listen 443 ssl; , я бы хотел перенаправить все, кроме папки xxx, yyy, zzz, чтобы вернуться на http.

Я попытался сделать обратное в разделе https: location / { rewrite ^ http://www.example.com$uri permanent; } а также location ~ ^/(xxx|yyy|zzz)/.*$ { #do nothing } но это не работает, либо я получаю ошибку 404, либо цикл

1 Ответ

0 голосов
/ 27 мая 2019

Единственное решение, которое я нашел в качестве Nginx - это прокси-сервер, заставляющий Apache обрабатывать перенаправление на своей стороне.

так, a.nginx 80 перенаправляет на определенные папки nginx 443.б.все https перенаправляются с помощью nginx 443 на apache 443, а затем в apache 443 conf я делаю тест, если это определенные папки, я останавливаюсь, а в противном случае я перенаправляю на nginx 80.

Это работает, но яЯ уверен, что есть возможность заставить nginx справиться с этим и избежать этого 1 цикла.если кто-то так красиво ответит: -)

...