NGINX - пропустить переадресацию на https с проксипассом в апстрим - PullRequest
0 голосов
/ 19 октября 2018

Как видно из заголовка, я хотел бы сохранить свою конфигурацию без изменений и просто добавить / location, которую / location необходимо пропустить из перенаправления $ схема.В нескольких словах установка перенаправить все на upstream add www add https (используя letsencrypt ssl) Нужно пропустить часть https для определенного места.скажем, если я наберу: www.example.com/location Мне нужно быть в прото http.

Спасибо за любую помощь!

Конф:

<code>upstream example.com {
    server 1.2.3.4:80;
}
server {
        listen 80;
        server_name example.com;
        return 302 https://www.$host$request_uri;

location / {
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}
server{
        listen 443 ssl; # managed by Certbot
        server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com-0001/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        return 302 https://www.$host$request_uri;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 1.1.1.1 8.8.8.8;
        resolver_timeout 5s;

        add_header Strict-Transport-Security max-age=15768000;
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-XSS-Protection "1; mode=block";

        server_tokens off;

location / {
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
        listen 80;
        server_name www.example.com;
        return 302 https://$host$request_uri;

location / {
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

server{
        listen 443 ssl; # managed by Certbot
        server_name www.example.com;
    ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver1.1.1.1 8.8.8.8;
        resolver_timeout 5s;

        add_header Strict-Transport-Security max-age=15768000;
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-XSS-Protection "1; mode=block";

        server_tokens off;



location / {
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


}

1 Ответ

0 голосов
/ 19 октября 2018

Итак, я искал решение, поэтому я сделал несколько тестов и, к счастью, нашел их.Я выкладываю это здесь .... может быть, кто-то работает с той же проблемой!

Ответ таков:

server {
        listen 80;
        server_name www.example.com;
#        return 302 https://$host$request_uri;
location /location {
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }



location / {
        return 302 https://$host$request_uri;
        proxy_pass http://example.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

Так что объяснить ....

Только для сервера www.example.com (не для остальной части вышеуказанного конфига) я закомментировал редирект 302.Пока конф говорит порт 80. БАМ!location / location for / location proxy все обратно в восходящий поток.Расположение BAM2 / Для всего остального сделайте редирект 302 на https, затем прокси на восходящий.

Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...