Вот что я делаю:
Так как /api
В системе проблема с HTTPS, я должен обслуживать ее по HTTP. Остальное заставляю быть в HTTPS. Однако в моей системе django перенаправления возвращают мне http. Возможно, это связано с django, но сейчас я хочу переписать весь HTTP на HTTP. Я бы обычно помещал это в 80
серверный блок, но я хочу оставить /api
как HTTP.
Как я могу сделать это с помощью перезаписи?
Спасибо.
server {
listen 80;
server_name localhost 127.0.0.1;
server_name_in_redirect off;
client_max_body_size 100M;
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:5050;
proxy_redirect default;
}
}
server {
listen 443;
ssl on;
location /app1 {
....
proxy_pass http://localhost:1234;
}
location /app2 {
...
proxy_pass http://localhost:5678;
}
}
Ах. Я только что пробовал что-то и вроде работает.
if ($request_uri !~ (/api)){
rewrite ^(.*) https://$http_host$1 permanent;
}
а затем оставьте все остальное в 80
блок неповрежден ... Не собираюсь проверять свой ответ ...