У нас есть следующий сценарий:
http://example.com:8090/access/app1
http://example.com:8090/access/app2
Мы хотим настроить apache mod_proxy для назначения:
http://app1.example.com
>> http://example.com:8090/access/app1
http://app2.example.com
>> http://example.com:8090/access/app2
Мы безуспешно пробовали следующее:
<VirtualHost app1.example.com:80>
ServerName app1.example.com
ProxyPass / http://example.com:8090/access/app1/
ProxyPassReverse / http://example.com:8090/access/app1/
</VirtualHost>
<VirtualHost app2.example.com:80>
ServerName app2.example.com
ProxyPass / http://example.com:8090/access/app2/
ProxyPassReverse / http://example.com:8090/access/app2/
</VirtualHost>
Сохранено в /etc/httpd/conf.d/myconfig.conf
, затем перезапустите apache sudo service http restart
.
При использовании браузера и записи http://app1.example.com
появится страница приветствия Apache по умолчанию, но не наша страница app1. Похоже, конфиг mod_proxy не работает.
Установка уровня ошибки на DEBUG покажет следующее событие в error_log
:
[Вт, 07 августа, 14: 18: 04.748775 2018] [autoindex: error] [pid 1985] [client xxxx: 58843] AH01276: Невозможно обслужить каталог / var / www / html /: не найдено соответствие DirectoryIndex (index.html), и сгенерированный сервером индекс каталога запрещен директивой Options
Любая помощь будет оценена
Две вещи:
1) закомментируйте или очистите файл conf.d / welcome.conf (не удаляйте его, иначе он будет восстановлен при следующем патче httpd
2) httpd -S - отличный друг при рассмотрении проблем с виртуальным сервером. Это выведет, где в вашей конфигурации определены ваши виртуальные хосты (и какие из них по умолчанию)
И бонус: я вижу, что вы используете порт 8090, что заставляет меня думать, что вы, возможно, имеете дело с продуктами Atlassian. Если вы имеете дело с Confluence с компонентом совместного редактирования Synchrony, я, возможно, могу дать вам некоторую конфигурацию для материала websocket (документация Atlassian сбивает с толку, когда дело доходит до конфигурации обратного прокси)
Настройте файл виртуального хоста следующим образом
<VirtualHost *:80>
ServerName app1.example.com
ProxyPass /app1 http://example.com:8090/access/app1/
ProxyPassReverse /app1 http://example.com:8090/access/app1/
</VirtualHost>
<VirtualHost *:80>
ServerName app2.example.com
ProxyPass /app2 http://example.com:8090/access/app2/
ProxyPassReverse /app2 http://example.com:8090/access/app2/
</VirtualHost>