Desativar SSL para determinados caminhos no Nginx

10

Eu tenho um site no qual desejo que todas as solicitações sejam feitas com HTTPS, exceto para solicitações de URLs com caminhos que começam com /foo/ . Como configuro isso no Nginx?

Neste momento, executo todos os pedidos com 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;
        ...
    }
}
    
por hekevintran 24.05.2012 / 02:03

1 resposta

14

Adicione uma segunda entrada de servidor para não SSL, porta 80, veiculando /foo/* e redirecionando todo o restante para URL HTTPS.

Talvez algo assim:

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

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

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}
    
por 24.05.2012 / 02:31

Tags