使用Passenger for Nginx部署多个Ruby应用程序(Rails和Sinatra)?
我有两个Ruby应用程序,一个在Rails下,另一个在Sinatra下。
我如何在Nginx和Passenger中将这两个应用程序部署在一个根目录(“localhost:3000”)中,另一个在subroot(“localhost:3000 / test”)中?
Rails应用程序正在使用此配置运行。 一切似乎都行得通:
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;
}
我无法访问第二个应用程序。
服务器为第二个应用程序返回404,第一个应用程序仍在运行。
我相信你需要定义本地服务器,它只能监听本地端口并在那里定义你的乘客应用程序。 您在端口上侦听的实际服务器应仅充当代理。
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
链接地址: http://www.djcxy.com/p/32487.html
上一篇: Multiple Ruby apps (Rails and Sinatra) deployed using Passenger for Nginx?