3

背景:

  • 我在反向代理后面运行 debian 7 服务器。
  • 我有一个运行 ruby​​ 2.0.0-p247 的 rails 4 应用程序
  • 我正在使用 nginx
  • 通过导航到服务器访问服务器: server-name.foo.dev 其中 foo.dev 是内部反向代理域。
  • 我无法使用乘客来部署应用程序。
  • 这将是服务器上运行的唯一应用程序。

问题:

我需要在反向代理后面的服务器上的子 uri 或上下文根路径上托管 rails 应用程序,这样当用户导航到网站时,根路径的 url 如下所示:

  • server-name.foo.dev/rails_app,其中 rails_app 将是 rails 应用程序的根目录。

我将如何在支持 nginx 站点的配置文件中进行设置,是否需要在 rails 应用程序上进行任何修改以允许它切断静态内容的正确路径。

4

1 回答 1

1

我强烈建议使用 Unicorn 而不是Passenger。您可以将它们(Unicorn 和 Nginx)都设置为反向代理。 这个链接对你来说是很好的论文。。

再次,您“重写”(Nginx 路由功能)/rails_app 到 rails 应用程序的 Unicorn 套接字文件(通常使用上游)。

另请参阅下面的代码片段。

部分 nginx.conf

location ~* ^/(rails_app)/ {
  root   /your/rails/home;
  index  index.html index.htm;
  proxy_pass http://socket_proxy_name;
}

proxy_pass 的部分片段

upstream socket_proxy_name{
  server unix:/your/socket/paht.sock fail_timeout=0;
}
于 2013-10-06T07:01:32.273 回答