我有一台安装了 Apache 2.4.7 和 Wildfly 8 的 Ubuntu Server 14.04。Apache 在前端运行,Wildfly 在后端运行。Apache 代理在 Wildfly 上运行的所有应用程序。
现在我尝试使用域 代理我的一个应用程序mysubdomain.example.com
,但出现了不想要的副作用。它example.com/mysubdomain
也会将自己添加到主域,这不是我想要的。首先,我将此配置添加到/etc/apache2/sites-available/000-default.conf
:
<VirtualHost *:80>
ServerName mysubdomain.example.com
ServerAlias www.mysubdomain.example.com
ProxyPass / http://localhost:8080/myapp/
ProxyPassReverse / http://localhost:8080/myapp/
</VirtualHost>
然后我在 SSH 中添加了相同的内容/etc/apache2/sites-available/ssl.conf
:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mysubdomain.mydomain.crt
SSLCertificateKeyFile /etc/ssl/private/mysubdomain.mydomain.key
ServerName mysubdomain.example.com
ServerAlias www.mysubdomain.example.com
ProxyPass / http://localhost:8080/myapp/
ProxyPassReverse / http://localhost:8080/myapp/
</VirtualHost>
此配置确实不行像这样。我不得不添加另一个配置才能使其工作。我必须添加到/etc/apache2/apache2.conf
:
<Location "/myapp/">
ProxyPass "http://localhost:8080/myapp/"
ProxyPassReverse "http://localhost:8080/myapp/"
</Location>
<Location "/myapp">
ProxyPass "http://localhost:8080/myapp"
ProxyPassReverse "http://localhost:8080/myapp"
</Location>
这有效(好事):
http://mysubdomain.example.com
https://mysubdomain.example.com
随之而来的是(坏事):
http://example.com/mysubdomain
我必须做什么才能只影响subdomain
而不向主域添加任何内容?