2

我在 Ubuntu 上的 Nginx/Passenger 上有一个 Rails 应用程序设置。最近我添加了在 Thin 上运行的 Faye,这需要在我的 Nginx 配置中添加反向代理服务器设置。我设法让它工作,但设置很奇怪:只有当我从 www.mydomain.com 访问我的服务器并使用 mydomain.com/faye 上的 Javascript 代码访问反向代理时,它才有效。虽然我设法通过这种方式访问​​了 Faye 服务器,但 Chrome 浏览器控制台反复闪烁 Access-Control-Allow-Origin 错误,所以我知道这不是一个长期的解决方案。该错误对我来说很有意义,但经过多次尝试后我无法修复它。

XMLHttpRequest cannot load mydomain.com/faye. Origin www.mydomain.com is not allowed by Access-Control-Allow-Origin.

显而易见的解决方案是从 www.mydomain.com 和 www.mydomain.com/faye 访问,但这样做会导致 502 网关错误。如果我剥离两个 www,我也会收到 502 错误。

我还尝试在 Nginx 中将 www.mydomain.com 重写为 mydomain.com 并从 mydomain.com 访问所有内容,但仍然无法正常工作。

下面是我删减的 nginx.conf。非常感谢任何帮助!

http {
  passenger_root <path_to_passenger_root>
  passenger_ruby <path_to_passenger_ruby>

  <abridged...>

  upstream faye_server {
    server 0.0.0.0:9292;
  }

  server {
    listen 80;
    server_name mydomain.com www.mydomain.com;
    root <path_to_root>
    passenger_enabled on;

    <abridged...>

    location /faye {
      proxy_pass http://faye_server;
    }
  }

  <Similar section for listening on port 443>
}
4

1 回答 1

0

嗨,您知道您现在可以直接在Passenger 上运行faye 吗?两者之间不需要薄。

看看这个:https ://github.com/faye/faye-websocket-ruby#running-the-app-with-passenger

于 2013-05-14T14:55:28.897 回答