微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Passenger for Nginx部署多个Ruby应用程序Rails和Sinatra?

我有两个Ruby应用程序,一个在Rails下,另一个在Sinatra下。

如何在Nginx和Passenger中将这两个应用程序部署在一个根目录(“localhost:3000”)中,另一个在subroot(“localhost:3000 / test”)中?

Rails应用程序正在运行这个configuration。 一切似乎工作确定:

server { listen 80; server_name localhost; location / { root /var/www/demo/public; passenger_enabled on; rails_env production; } location /test/ { root /var/www/test/public; passenger_base_uri /test/; proxy_pass http://10.0.3.12:80/test/; passenger_enabled on; }

我无法访问第二个应用程序。

如何让Nginx知道Rails代码的变化

/ usr / bin / env:乘客:没有这样的文件或目录,退出状态为1(失败)

独angular兽请求排队

Rails服务器在用户login后返回“404 Not Found”

乘客和Nginx => 502生产中的错误网关错误

服务器为第二个应用程序返回404,第一个应用程序仍在运行。

Phusion Passenger目前没有提供任何应用程序

自定义rails环境日志写入Nginx error.log

rufus调度程序不在生产中运行

与Passenger的Apache不加载Rails应用程序

Apache上的Phusion Passenger上有多个rails应用程序

我相信你需要定义本地服务器,只监听本地端口并在那里定义你的旅客应用程序。 您在端口上侦听的实际服务器应仅充当代理。

server { listen localhost:8181; server_name test_app; root /var/www/test/public; passenger_enabled on; } server { listen localhost:8182; server_name demo_app; root /var/www/demo/public; passenger_enabled on; rails_env production; } server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8182/; } location /test/ { proxy_pass http://localhost:8181/; } }

我没有机会测试这个配置,所以它可能有一些小的缺陷,但从高级角度来看应该是正确的。

Nginx.conf中:

server { listen 80; server_name localhost; location / { root /var/www/new/public; passenger_enabled on; rails_env production; } location /test { root /var/www/demo; passenger_base_uri /test; passenger_enabled on; }

添加一个链接

ln -s /var/www/loggerapp/public /var/www/new/test

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐