我有Apache2(在端口80上)和Glassfish(在端口8080上)的服务器。我想配置Apache以透明地代理对glassfish服务器的某个虚拟主机的请求 我尝试过这个,但是它不起作用:
<VirtualHost *>
ServerName tognettiimmobiliare.com
ServerAlias www.tognettiimmobiliare.com
ProxyRequests on
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://tognettiimmobiliare.com:8080/tognettiWEB/
ProxyPassReverse / http://tognettiimmobiliare.com:8080/tognettiWEB/
</VirtualHost>
有人可以告诉我为什么吗?感谢
答案 0 :(得分:2)
我使用mod_proxy从不同的端口代理Jenkins和Redmine,我的配置看起来像这样,没有我认为不需要的<Proxy>
部分:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyPass /jenkins/ http://localhost:8080/jenkins/
ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/
ProxyPass /redmine/ http://localhost:81/redmine/
ProxyPassReverse /redmine/ http://localhost:81/redmine/
要记住两件事:
代理和代理网址中的上下文必须相同,例如/ jenkins /和... / jenkins /
您不应该为代理页面使用外部URL,因为它会尝试路由到Internet并从那里连接,这很慢,防火墙可能会阻止该端口。使用本地计算机名称或IP。
答案 1 :(得分:1)
我使用像这样的简单VirtualHost。
<VirtualHost *:80>
# ServerName www.itmanx.com
ProxyPass / http://www.itmanx.int/
ProxyPassReverse / http://www.itmanx.int/
</VirtualHost>
确保您已加载mod_proxy
和mod_proxy_http
答案 2 :(得分:0)
我通过转到配置 - &gt;在Glassfish上启用了JK; server-config - &gt; HTTP服务 - &gt; Http Listeners - &gt; jk-listener并启用它。
然后在我的Apache配置中设置以这种方式代理,以便SSL数据也被传输。
<Location /util>
SSLOptions +StdEnvVars +ExportCertData
ProxyPass ajp://localhost:8004/util
</Location>
但有一点需要注意,mod_proxy_wstunnel
似乎无法解决这个问题,或者至少我还没有发现如何使用WSS和https://issues.apache.org/bugzilla/show_bug.cgi?id=55320需要2.4.10但尚未发布