我正在尝试将Tomcat与Apache集成.我的目标是将所有请求重定向
http://localhost/myapp到http://localhost:8080
我遵循了这个指南:http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html
我httpd.conf看起来像这样:
Include conf.modules.d/*.conf
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /myapp http://localhost:8080 retry=0 timeout=5
ProxyPassReverse /myapp http://localhost:8080
Run Code Online (Sandbox Code Playgroud)
我在apache-tomcat中的server.xml如下所示:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试网址时http://localhost/myapp,它会503 Service Unavailable出错.
Tomcat和Apache都已启动并运行.URL http://localhost:8080工作正常.
文件权限可能存在问题吗?
对于tomcat用户和组root/root来说httpd,用户和组是apache/apache
我错过了什么或者我做错了吗?
Httpd版本是2.4.6,Tomcat的版本是8.0
httpd错误日志:
[proxy:error] [pid 19905] (13)Permission denied: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[proxy:error] [pid 19905] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 0s
[proxy_http:error] …Run Code Online (Sandbox Code Playgroud) 我正在使用Apache Web服务器2.4使用proxypass指令将传入的HTTP请求代理到我们的后端服务器.我也通过Apache传递来自后端服务器的传出请求,再次使用proxypass,例如
<Location/outgoingrequest />
< Location /outgoingrequest/ >
ProxyPass http://foobar.com/ retry=0 timeout=40 ttl=60
ProxyPassReverse http://foobar.com/
< /Location >
Run Code Online (Sandbox Code Playgroud)
</ Location>
这通常工作正常,我可以在Apache日志中看到所有传入和传出请求.但是,foobar.com托管在AWS云中,偶尔会更改其IP地址,从而导致所有传出请求失败.DNS查找显示新的IP地址,因此很明显mod-proxy正在缓存IP地址.我已经添加了ttl = 60,但是传出的请求会持续数小时失败.
有什么我想念的,或者我应该以完全不同的方式做这件事吗?