Назад | Перейти на главную страницу

Apache не проксирует HTTPS-запросы к tomcat

Centos 7, Apache 2.4, TomCat 7.0.52, Java 1.7

Я пытаюсь настроить Apache для прокси-сервера tomcat (под управлением Jira / Confluence) с использованием HTTPS:

(HTTPS: 443) -> ApacheServer -> (HTTP: 8090 или HTTPS: 8091) TomCat

В настоящее время проксирование HTTP работает отлично, но я хочу, чтобы HTTPS работал. Я не возражаю, если соединение между Apache и Tomcat будет SSL (на одном сервере).

Когда я приезжаю https://confluence.company.co.uk/ Я получаю /var/www/html/index.html, а не прокси.

Вот Server.xml от tomcat:

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
           maxThreads="200" minSpareThreads="10"
           enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" />

<Connector port="8091" proxyPort="443" proxyName="confluence.company.co.uk"   acceptCount="100"
           connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false"
           maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" protocol="HTTP/1.1"
           redirectPort="8443" useBodyEncodingForURI="true" scheme="https" secure="true" />

Строки изменены с /etc/httpd/conf.d/ssl.conf по умолчанию из Apache:

ServerName confluence.company.co.uk:443
SSLCertificateFile /etc/pki/tls/certs/company.pem
SSLCertificateKeyFile /etc/pki/tls/private/company.key

Конфигурация Apache VHost (в /etc/httpd/conf.d/proxy_vhost.conf):

<VirtualHost *:80>
    ServerName  confluence.company.co.uk
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Deny from all
    Allow from all
    </Proxy>
    <Location />
            AuthType Basic
            AuthName "Proxy Auth"
            AuthUserFile /var/www/company-auth/CONFLUENCE/.htpasswd
            Require user ukuser
            Satisfy any
            Deny from all
            Allow from 192.168.0.0/21
    </Location>
    ProxyPreserveHost On
    ProxyPass / http://confluence.company.co.uk:8090/
    ProxyPassReverse / http://confluence.company.co.uk:8090/
</VirtualHost>
<VirtualHost *:443>
    SSLProxyEngine On
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Deny from all
    Allow from all
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / https://confluence.company.co.uk:8091/
    ProxyPassReverse / https://confluence.company.co.uk:8091/
</VirtualHost>

Предлагаю вам включить AJP коннектор как в Tomcat, так и в Apache httpd. Этот двоичный протокол предназначен для проксирования Java HTTP. Его использование может сэкономить время и усилия, а также снизить требования к пропускной способности и ресурсам.

Кстати, <Proxy *> директива не имеет отношения к обратным прокси.