Ah. Eu apenas tentei algo e parece que está funcionando.
if ($request_uri !~ (/api)){
rewrite ^(.*) https://$http_host$1 permanent;
}
e deixe todo o restante no bloco 80
intacto ...
Não vou checar minha resposta ...
Isso é o que eu faço:
Como o /api
do sistema tem problemas com HTTPS, tenho que atendê-lo em HTTP. O resto eu os forço a estar em HTTPS.
No entanto, no meu sistema django, redirecionamentos me dá de volta http. Pode ter a ver com o django, mas por agora, eu quero reescrever todos os HTTP para HTTPs. Eu normalmente colocaria isso dentro do bloco de servidor 80
, mas eu quero manter /api
como HTTP.
Como posso fazer isso usando reescrita?
Obrigado.
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;
}
}
Ah. Eu apenas tentei algo e parece que está funcionando.
if ($request_uri !~ (/api)){
rewrite ^(.*) https://$http_host$1 permanent;
}
e deixe todo o restante no bloco 80
intacto ...
Não vou checar minha resposta ...