这是我如何设置我的环境,atm。 端口80上的apache2实例。同一台服务器上的端口8090上的Jetty实例。
用例:
当我访问foo.com时,我应该看到webapp,这是托pipe在docker,端口8090。
如果我把foo.com/blog,我应该看到在Apache上托pipe的WordPress的博客。 (我读了网上的howtos,并使用AMP进行安装。)
以下是我的各种configuration文件:
/etc/apache2/mods-enabled/proxy.conf:
ProxyPass / http://foo.com:8090/ << this is the jetty server ProxyPass /blog http://foo.com/blog ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On ProxyStatus On
/etc/apache2/httpd.conf:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
我还没有创build任何其他文件,在网站,可用或网站启用。
现在的情况:
HTTP错误404
访问/errors/404.html的问题。 原因:
NOT_FOUND由jetty提供支持://
代理服务器收到来自上游服务器的无效响应。
代理服务器无法处理请求GET /博客。
原因:从远程服务器读取错误
我在运行Debian挤压Amazon EC2实例。
问题:我哪里错了? 我应该在proxy.conf(或另一个conf文件)中做什么修改才能访问博客?
如果我理解正确,你需要更换这一行
ProxyPass /blog http://foo.com/blog
用这条线
ProxyPass /blog/ !
这指示apache2服务器不要代理以/ blog开头的任何东西,这是我想要的。
更新:官方文档是在这里: http : //httpd.apache.org/docs/2.2/mod/mod_proxy.html