Я постоянно говорю себе, что это должно быть просто. Предыстория: у меня был настроен сайт ( https://example.com ) с использованием Let's Encrypt для настройки SSL. Работает отлично. Я добавил новый сервер во внутреннюю сеть с другим сайтом, без настройки SSL. Работает отлично. Пора добавить его в качестве поддомена ( http://sub1.example.com ). Я подумал, что простой обратный прокси-сервер в Apache поможет. НО ... когда я перехожу на http://sub1.example.com , меня перенаправляют на https: // sub1. example.com ... Что не работает по очевидным причинам.
default.conf -
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
(Я почти уверен, что вмешивается правило перезаписи, но не знаю, как это исправить?)
Sub1.conf:
<VirtualHost *:80>
ServerName sub1.example.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://10.10.10.145/
ProxyPassReverse http://10.10.10.145/
</Location>
</VirtualHost>
Итак ... Что мне не хватает? (Я также могу включить файл default-ssl.conf, если он может быть полезен, просто скажите об этом!)
Спасибо!
В опубликованной вами конфигурации нет ничего, что могло бы вызвать перенаправление.
Причина может быть найдена за пределами вашей конфигурации Apache в любой конфигурации вашего целевого URL-адреса ProxyPass http://10.10.10.145/
или, возможно, у вас есть HSTS , настроенный на вашем основном домене example.com с политикой includeSubDomains
.
Это применит политику example.com к sub1.example.com и «исправит» «неправильные URL-адреса» прямо в вашем браузере и изменит их с http на httpS.
Тестируйте из окна в режиме инкогнито или простая командная строка curl -v sub1.example.com
HBruijn был прав. Я заглянул в дополнительный файл .conf, загружает Let's Encrypt (/etc/letsencrypt/options-ssl-apache.conf), и там было достаточно HSTS с «includeSubDomains»
. Я знал, что упускаю что-то простое. Спасибо, ребята!