Nginx - перенаправлять HTTPS обратно на HTTP при выходе с защищенной страницы - PullRequest
2 голосов
/ 29 октября 2011

У меня Nginx перед приложением Node.js.Я настроил его так, что если в URL есть / account, он будет перенаправлен на HTTPS.У меня вопрос - как мне настроить его так, чтобы, если пользователь оставит URL / account (щелкает ссылку, чтобы перейти на домашнюю страницу), он будет отправлен обратно по HTTP?

Вот мой ngnix.conf:

worker_processes  1;

error_log  logs/error.log;

pid        logs/nginx.pid;

events {
    worker_connections  128;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    server_tokens off;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
    proxy_buffer_size   128k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;

    gzip  on;

    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_set_header x-path $uri;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://127.0.0.1:3000;
            proxy_redirect off;
        }

        location /account {
          rewrite ^(.*) https://$host$1 permanent; #redirect to https
        }

        error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    server {
        listen 443;
        ssl on;

        ssl_certificate ssl/server.crt;
        ssl_certificate_key ssl/server.key;

        location / {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-M-Secure "true";
            proxy_redirect off;
            proxy_max_temp_file_size 0;
            proxy_pass http://127.0.0.1:3000;
        }
    }
}

Заранее благодарим за любую помощь.

1 Ответ

8 голосов
/ 29 октября 2011

Это не проверено.

server {
    listen 443;
    ssl on;

    ssl_certificate ssl/server.crt;
    ssl_certificate_key ssl/server.key;

    location /account/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-M-Secure "true";
        proxy_redirect off;
        proxy_max_temp_file_size 0;
        proxy_pass http://127.0.0.1:3000;
    }

    location / {
        rewrite ^(.*) http://$host$1 permanent; # redirect to http
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...