nginx redirect boucle avec ssl

C'est un problème très similaire à Nginx configuration conduit à la redirection en boucle mais cette discussion n'a pas m'a conduit à encore de réponse. Je suis en train d'apprendre comment travailler avec nginx et ssl et tout fonctionne parfaitement régulière http://example.com côté des choses, mais lors de l'acheminement à la https://example.com/admin j'ai plutôt voir:

Cette page web a une boucle de redirection

Voici mon fichier de config:

map $uri $example_org_preferred_proto {
        default "http";
        ~^/(images|css|javascript)/"none";
        ~^/admin/"https";
}

server {
    listen 80;
    root /usr/share/nginx/www/example.com/blog;

    server_name example.com;
        if ($example_org_preferred_proto = "https")
            return 301 https://example.com$request_uri;
        }

    location ~ /{
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:2368;
    }

}

server {
    listen 443;
    ssl on;
    root /usr/share/nginx/www/example.com/blog;

    server_name example.com;
    ssl_certificate /usr/share/nginx/<redacted>.crt;
    ssl_certificate_key /usr/share/nginx/<redacted>.key;
    if ($example_org_preferred_proto = "http") {
        return 301 http://example.com$request_uri;
    }

    location ~ /{
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:2368;
    }


}

Fondamentalement, ce que je veux accomplir est d'avoir un site qui s'exécute normalement non chiffrés, mais quand je pointe mon admin de la page, le navigateur redirige vers https et crypte mon login.

Remarque: la cartographie idée est venue de http://www.redant.com.au/ruby-on-rails-devops/manage-ssl-redirection-in-nginx-using-maps-and-save-the-universe/ et semble être une bien meilleure approche que l'utilisation de la réécriture

OriginalL'auteur stoves | 2014-04-16