Я использую обратный прокси-сервер, чтобы показать содержимое внутреннего сервера для поддомена.
Subdomain.mydomain.com (сервер A) должен отображать содержимое сервера с IP-адресом 123.123.123.123, порт 1111 (сервер B).
Виртуальный хост subdomain.mydomain.com (сервер A):
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName subdomain.mydomain.com
SSLEngine on
SecAuditEngine On
RewriteEngine On
SSLProxyEngine on
ProxyPreserveHost On
LogLevel warn
<Directory />
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Location />
ProxyPass https://123.123.123.123:1111
ProxyPassReverse https://123.123.123.123:1111
</Location>
ErrorLog /var/log/apache2/error.log
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLVerifyClient none
SSLVerifyDepth 1
SSLCertificateFile /etc/apache2/cert.site/chain_wildcard_site_combined.crt
SSLCertificateKeyFile /etc/apache2/cert.site/key_wildcard_site.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
Виртуальный хост 123.123.123.123:1111 (сервер B):
<IfModule mod_ssl.c>
<VirtualHost 123.123.123.123:1111>
DocumentRoot /srv/www/site/htdocs
SSLEngine on
RewriteEngine On
SSLProxyEngine on
ProxyPreserveHost On
LogLevel warn
<Location "/">
Require ip 222.222.222.222
</Location>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /srv/www/site/htdocs>
Options -Indexes +FollowSymLinks +MultiViews
DirectoryIndex index.php
AllowOverride None
Require all granted
</Directory>
ErrorLog /srv/www/site/log/error.log
CustomLog /srv/www/site/log/access.log combined
CustomLog /srv/www/site/log/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLVerifyClient none
SSLVerifyDepth 1
SSLCertificateFile /etc/apache2/cert.site/chain_wildcard_site_combined.crt
SSLCertificateKeyFile /etc/apache2/cert.site/key_wildcard_site.key
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
Если я загружаю URL:
https://subdomain.mydomain.com/dir/
он успешно загружается.
Если я загружаю URL (без косой черты):
https://subdomain.mydomain.com/каталог
это приводит к странице с ошибкой: ERR_CONNECTION_REFUSED.
РЕДАКТИРОВАТЬ1:
Выполняю команду:
curl -IL https://subdomain.mydomain.com/dir
и я получаю этот результат:
HTTP/1.1 301 перемещен навсегда
Дата: пн, 23 августа 2021 г., 13:45:13 по Гринвичу
Сервер: Апач
Строгая транспортная безопасность: max-age=15768000; includeSubDomains
Строгая транспортная безопасность: max-age=15768000; includeSubDomains
Местоположение: https://subdomain.mydomain.com:1111/dir/
Тип содержимого: текст/html; кодировка = iso-8859-1
curl: (7) Не удалось подключиться к порту 1111 subdomain.mydomain.com: соединение отклонено
РЕДАКТИРОВАТЬ2:
я добавил косую черту в конце
<Location />
ProxyPass https://123.123.123.123:1111/
ProxyPassReverse https://123.123.123.123:1111/
</Location>
Но я все еще получаю В соединении отказано ошибка.
Любая идея, почему возникает ошибка, когда косая черта отсутствует?
Спасибо!