10 votos

Deshabilitar SSL para ciertas rutas en Nginx

Tengo un sitio Web donde desea que todas las solicitudes se realiza con HTTPS excepto para las solicitudes de direcciones url con las rutas que comienzan con /foo/. ¿Cómo puedo configurar esto en Nginx?

Ahora puedo ejecutar todas las solicitudes con 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;
        ...
    }
}

14voto

Alex Puntos 104

Agregar un segundo servidor de entrada para los no-ssl, puerto 80, sirviendo /foo/* y redirigir todo lo demás a la dirección URL HTTPS.

Tal vez algo como esto?:

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

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

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: