我在Linux上使用Apache将所有对站点的请求代理到tomcat,这样我就可以使用虚拟主机并使用https。我在tomcat中的webapp是/ epub,但我设置了apache proxypass和proxypassreverse来映射/到http // localhost:8081 / epub /
我做了所有这些,以便我可以通过Facebook登录我的网站。
(注意:这不是一个真实的网站,我必须为我在facebook上注册的网站名称设置/ etc / hosts和apache虚拟主机。)
在tomcat server.xml中,我按如下方式设置了Connector元素:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
proxyPort="80"
proxyName="andyssite2.com"/>
但没有为此端口设置执行程序共享线程池的任何内容。
这是什么不起作用:
错误1)当我访问我的loginservlet时,我会检查会话是否存在。如果不是,我创建一个并将“hash”请求参数保存为会话的属性。然后根据他们的OAuth服务器流程方案重定向到Facebook。当facebook重定向回我的loginservlet时,HttpSession存在,但“hash”属性丢失。 (我宁愿在会话中保存而不是在cookie中保存。)
错误2)然后我获取其余的facebook用户信息,并重定向到“/index.html”。浏览器将我的网址显示为“http://andyssite2.com/index.html#_=_”,这会导致问题,因为我的index.html加载的javascript没有准备好以某种方式发挥作用的哈希_ = _。我也尝试使用绝对网址重定向到我的网站,并使用_ = _的哈希问题得到同样的问题,我的问题是导致这个spurios哈希被添加的原因。
我有最新的Centos6 apache。
安迪
答案 0 :(得分:1)
我有非常类似的配置,apache作为前端,tomcat后面运行liferay门户(也运行CentOS)。
我发现研究的最佳方法是使用mod_proxy_ajp:
的httpd.conf:
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
ProxyPass / ajp://localhost:8009/
server.xml中:
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
您可以将我的配置应用于我的,我希望这可以解决您的问题。