Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] проксирование https с nginx на apache (http://forum.oszone.net/showthread.php?t=331278)

za1 17-11-2017 16:02 2778224

проксирование https с nginx на apache
 
Доброго времени суток, помогите разобраться с конфигом для проксирования https с nginx на apache.
Общий вид схемы следующий: есть 1 виртуалка с Centos 7, на ней поднят апач, для отдачи тяжелого контента (php), и nginx, для отдачи статики и проксирования запросов на апач. В процессе проб и ошибок вышел на рабочую версию конфига, но при этом сейчас сайт отдается по https но с задержкой, в которой оказывается страница недоступности. Ниже конфиг для nginx и апача. Сразу уточню, опыта в создании таких систем у меня нет, и поднято это исключительно в целях тренировки.

/etc/nginx/conf.d/disk.conf

Код:


server{
    listen 80;
    server_name disk;
  #  return 301 https://$host$request_uri;

    listen 443;

  # add_header Strict-Transport-Security max-age=2592000;

    ssl                    on;
    ssl_certificate        /var/www/html/disk/cert/sandisk.crt;
    ssl_certificate_key    /var/www/html/disk/cert/sandisk.key;

    location / {
          root /var/www/html/disk;
        # index nginx.html;
          autoindex on;
          proxy_pass http://127.0.0.1:81;
          proxy_set_header Host $http_host;
        # add_header  [always];
    }
    location ~ ^.*\.html$ {
    root /var/www/html/disk;
    }
}

/etc/httpd/sites-available/disk.conf

Код:


<VirtualHost 127.0.0.1:81>
ServerName disk
DocumentRoot /var/www/html/disk
ErrorLog /var/www/html/disk/error.log
CustomLog /var/www/html/disk/requests.log combined
SetEnvIf X-Forwarded-Proto https HTTPS=on
#</VirtualHost>
#
#          <VirtualHost>
#                    ServerName disk
#                    ServerAlias disk
#                    ServerAlias mail.disk
#                    DocumentRoot /var/www/html/disk
#
                    SSLEngine On
                    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
                    SSLCertificateFile /var/www/html/disk/cert/sandisk.crt
                    SSLCertificateKeyFile /var/www/html/disk/cert/sandisk.key

                 
                    <Directory “/var/www/html/disk”>
                            Options Indexes FollowSymLinks
                            AllowOverride All
                            Order allow,deny
                            Allow from all
                    </Directory>
#
#                    ErrorLog /var/www/html/disk/error.log
#                    CustomLog /var/www/html/disk/requests.log combined
            </VirtualHost>

ps Если раскомментировать строчку

# return 301 https://$host$request_uri;

сайт перестает работать, в чем причина не знаю. Все закомментированные строчки остались от проведенных экспериментов.
Хотелось узнать , что можно добавить или удалить в конфигах для правильной работы сайта?

Jula0071 17-11-2017 19:27 2778261

Не рекомендуется ssl on;
Нужно добавлять опцию ssl в listen.
Цитата:

Цитата za1
ps Если раскомментировать строчку
# return 301 https://$host$request_uri;
сайт перестает работать, в чем причина не знаю. Все закомментированные строчки остались от проведенных экспериментов.
Хотелось узнать , что можно добавить или удалить в конфигах для правильной работы сайта? »

Это потому что строка эта делает редирект 301 (Moved Permanently) на https версию сайта, у вас получается закольцованный редирект.

Это по nginx.

В итоге конфиг будет выглядеть примено так:

Код:

server {
    listen 80;
    server_name disk;
    return 301 https://$host$request_uri;
    }

server {
    listen 443 ssl;

    server_name disk;

    ssl_certificate        /var/www/html/disk/cert/sandisk.crt;
    ssl_certificate_key    /var/www/html/disk/cert/sandisk.key;

    location / {
          root /var/www/html/disk;
        # index nginx.html;
          autoindex on;
          proxy_pass http://127.0.0.1:81;
          proxy_set_header Host $http_host;
        # add_header  [always];
    }
    location ~ ^.*\.html$ {
    root /var/www/html/disk;
    }
}

На апаче выключите всё касающееся SSL/TLS - трафик к этому апстриму идёт нешифрованный.

Цитата:

Цитата za1
при этом сейчас сайт отдается по https но с задержкой, в которой оказывается страница недоступности. »

error.log ваш друг. Почитаешь логи - локализуешь проблему. И решишь. И становится ненужно выставлять себя безграмотным дурачком на форумах, даже с оправданиями.

za1 22-11-2017 11:09 2779403

Цитата:

сайт отдается по https но с задержкой, в которой оказывается страница недоступности.
Так для справки, дело оказалось в том, что хром запомнил эту страницу и сам ее запрашивал, а после очистки истории все стало нормальмо.


Время: 20:06.

Время: 20:06.
© OSzone.net 2001-