Разместил это на ServerFault, но не получил ответа. Надеюсь, мне повезет больше на сайте Ubuntu.
Я пытался заставить это работать весь сегодняшний день. У меня есть сервер, который разрешает к домену example.com . Это работает Apache2 и Tomcat 6. Требуется направить запросы на example.com к apache2 и app.example.com к Tomcat. Я знаю, что должен сделать проход прокси VirtualHost, чтобы это работало. Вот настройки на моем сервере.
/ etc / hosts выглядит примерно так
127.0.0.1 localhost localhost.localdomain example.com app.example.com
У меня есть два файла виртуальных хостов для разных доменов в / etc / apache2 / sites-enabled [ 117]
/etc/apache2/sites-enabled/example.com выглядит следующим образом
<VirtualHost *:80>
# Admin email, Server Name (domain name) and any aliases
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/app.example Файл .com выглядит следующим образом
<VirtualHost *:80>
ServerName app.example.com
ServerAlias www.app.example.com
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</VirtualHost>
. mod_proxy и mod_rewrite включены в экземпляре apache. У меня есть запись CNAME для example.com и app.example.com. При доступе к app.example.com я получаю 403 запрета, говоря, что у меня нет доступа к / на сервере. Что я делаю неправильно?
У меня похожая проблема, когда я использую такую конструкцию в определении виртуального хоста:
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
В моем случае она начинает работать, когда я указываю приложение:
эти позволяют перенаправить такой адрес: http://app.example.com/confluence
ProxyPass /confluence/ http://localhost:8180/confluence/
ProxyPassReverse /confluence/ http://localhost:8180/confluence/
они позволяют перенаправить такой адрес: http://app.example.com для правильного применения
ProxyPass / http://localhost:8180/confluence/
ProxyPass / http://localhost:8180/confluence/
Попробуйте:
VirtualHost 'app.example.com:80'
вместо
VirtualHost '*:80'