У меня проблемы с тем, чтобы proxypass работал в apache.
Мой файл конфигурации выглядит следующим образом:
<VirtualHost 1.2.3.4:443>
ServerName example.com
ServerAlias www.example.org
ServerAdmin info@example.org
DocumentRoot /home/admin/web/knyz.org/public_html
ScriptAlias /cgi-bin/ /home/admin/web/knyz.org/cgi-bin/
Alias /vstats/ /home/admin/web/knyz.org/stats/
Alias /error/ /home/admin/web/knyz.org/document_errors/
#SuexecUserGroup admin admin
CustomLog /var/log/apache2/domains/knyz.org.bytes bytes
CustomLog /var/log/apache2/domains/knyz.org.log combined
ErrorLog /var/log/apache2/domains/knyz.org.error.log
<Directory /home/admin/web/knyz.org/public_html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
</Directory>
<Directory /home/admin/web/knyz.org/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /home/admin/conf/web/ssl.knyz.org.crt
SSLCertificateKeyFile /home/admin/conf/web/ssl.knyz.org.key
SSLCertificateChainFile /home/admin/conf/web/ssl.knyz.org.ca
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
IncludeOptional /home/admin/conf/web/sapache2.knyz.org.conf*
##ISSUE IS HERE!!!
<Location /admin>
ProxyPass https://localhost:8083
ProxyPassReverse https://localhost:8083
</Location>
</VirtualHost>
Желаемый результат: страница с localhost на порту 8083 будет отображаться при доступе к /admin
подкаталог.
Фактический результат: Ошибка 500
Проблема, похоже, такая же, как здесь: Apache ProxyPass с SSL
За исключением того, что решение не работает для меня.
При попытке сделать это я получаю следующую ошибку при перезапуске apache:
SSLProxyEngine not allowed here
Из журналов ошибок (относительно ошибки 500):
[Sun Dec 13 21:33:31.062959 2015] [ssl:error] [pid 1181] [remote 127.0.0.1:8083] AH01961: SSL Proxy requested for example.org:443 but not enabled [Hint: SSLProxyEngine]
[Sun Dec 13 21:33:31.063033 2015] [proxy:error] [pid 1181] AH00961: HTTPS: failed to enable ssl support for 127.0.0.1:8083 (localhost)
Как я могу исправить эту проблему?
Я заменил блок местоположения следующим
ProxyPreserveHost On
ProxyPass /blog http://127.0.0.1:2368/blog
ProxyPassReverse /blog http://127.0.0.1:2368/blog
ProxyPass /admin https://127.0.0.1:8083
ProxyPassReverse /admin https://127.0.0.1:8083
И сейчас /blog
работает правильно, но /admin
НЕ. Это означает, что проблема определенно связана с SSL.
Из того, что я могу сказать, ProxyPass не предназначен для использования внутри блока - он у вас <Location>
блок. Он должен быть вне этого блока, и вам нужно повернуть SSLProxyEngine
а также:
SSLProxyEngine On
ProxyPass /admin https://localhost:8083/
ProxyPassReverse /admin https://localhost:8083/