ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Настроить HTTP и HTTPS на одном сервере



Добрый день.

proxy_set_header           X-Forwarded-Proto $scheme;

09.12.2013 11:24, mnsold пишет:
Основная проблема: по HTTPS перенаправляет на HTTP протокол, вместо HTTPS.
По HTTP все отрабатывает нормально.
Локальный сетевой трафик хочется по HTTP гонять (и проблемы видимо отсюда и
растут), чтобы не нагружать сервер, да и весь локальный трафик между
серверами считаю доверенным.
В качестве бэкэнда стоит апач.

Само перенаправление (без слэша в конце), как оно проиходит.
Тут все нормально:
http://myhost/context -> http://myhost/context/
А вот тут перенаправляет на HTTP, вместо HTTPS
https://myhost/context -> http://myhost/context/
Подскажите, как нужно поправить конфиг, чтобы перенаправлял на HTTPS, при
условии что хочется внутренний трафик гонять по HTTP?

Конфиги:
server {
listen          *:80;
listen          *:443 ssl;
server_name     myhost;

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

ssl_protocols SSLv2 SSLv3;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_verify_client off;

include conf.d/test-apache.cfg;

error_log  /var/log/nginx/error.log warn;
access_log  /var/log/nginx/access.log  main;
}

Файл test-apache.cfg
location ^~ / {
         proxy_pass http://localhost:80;

         proxy_set_header   Host                 $http_host;
         proxy_set_header   X-Real-IP            $remote_addr;
         proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
}

Замечено, что если в proxy_pass отправлять по https то все работает
нормально, например:
в файле test-apache.cfg заменить
        proxy_pass http://localhost:80;
на
        if ( $scheme = "http" ) {
          proxy_pass http://localhost:80;
        }
        if ( $scheme = "https" ) {
          proxy_pass https://localhost:443;
        }

На стороне апача на данный момент все предельно просто
         Alias /context "/var/www/context"
         <Directory "/data/web/statistica">
                 Options Indexes MultiViews
                 AllowOverride None
                 Order allow,deny
                 Allow from all
         </Directory>

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,245346,245346#msg-245346

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


--
Dmitriy Lyalyuev
http://lyalyuev.info

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.