我有指向Cloud9安装的反向代理设置(apache2)。 代理工作正常,Cloud9站点出现。 但Cloud9需要特定的浏览器版本,并指出浏览器不兼容。 我已经testing了最新的Firefox和Chrome。
我没有太多的Apache和反向代理的经验,但我的猜测是代理模糊浏览器版本。 我如何转发这些信息? 或欺骗一个已知的工作版本?
当使用apache的mod_proxy反向代理到后端服务器时,apache服务器向后端服务器执行标准的符合RFC 2616的HTTP代理请求。
这意味着确切的请求数据(方法,头文件和正文)被传递到后端,并增加了包含原始客户端IP的X-Forwarded-For:头。
Apache不会在转发的请求中“弥补”任何东西。
将一个CGI页面放在显示所有请求标题的cloud9后端,然后将它们与您的浏览器标题进行比较。
Cloud9在HTML页面中使用绝对path(而不是酷)是个问题。 如果您在Chrome中打开开发人员工具,则可以看到一长串404错误。
我使用一些Apache重写规则解决了这个问题:
我目前的Apacheconfiguration:
RewriteEngine On RewriteRule ^/socket.io/(.*) /editor/socket.io/$1 [P] RewriteRule ^/static/(.*) /editor/static/$1 [P] RewriteRule ^/workspace/(.*) /editor/workspace/$1 [P] ProxyPass /editor/ http://127.0.0.1:3000/ ProxyPassReverse /editor/ http://127.0.0.1:3000/ <Proxy *> Order deny,allow Allow from all </Proxy>