我试图在Apache的代理服务器后面运行我的meteor应用程序。例如,我的应用部署在http://internalserver:3000上,我想从地址http://www.mycompany.com/myapp外部访问它。所以,我从http://www.mycompany.com/myapp到http://internalserver:3000建立了代理。当我打开内部URL(http://internalserver:3000)时,一切正常。问题在于外部URL。
我配置了Apache,一切似乎都是正确的,但我的应用程序没有渲染。我在控制台上得到一个没有任何错误的空白页面。 Apache日志不会显示任何异常。所有内容似乎都正确加载,如下所示:
我的Apache配置是:
ProxyPass /myapp http://internalserver:3000
ProxyPassReverse /myapp http://internalserver:3000
RewriteCond %{QUERY_STRING} ^meteor_js_resource=true
RewriteRule ^/(.*) http://internalserver:3000/$1 [R]
RewriteCond %{QUERY_STRING} ^meteor_css_resource=true
RewriteRule ^/(.*) http://internalserver:3000/$1 [R]
ProxyPassMatch ^/sockjs/info(.*) http://internalserver:3000/sockjs/info/$1
ProxyPassMatch ^/sockjs/(.*)/xhr http://internalserver:3000/sockjs/$1/xhr
ProxyPassMatch ^/sockjs/(.*)/websocket ws://localhost:3000/sockjs/$1/websocket
我的流星环境是:
HTTP_FORWARDED_COUNT=1
MONGO_URL=mongodb://mongo:27017/tasks
ROOT_URL=http://www.mycompany.com
OBS:我认为问题与使用子路径有关。示例:mycompany.com/myapp。如果从根URL(没有myapp)重定向一切正常