部署 nginx+passenger 配置同域名下不同项目的问题

wccxiaoan · 2013年07月03日 · 最后由 kgen 回复于 2013年07月04日 · 3164 次阅读

我想要实现的如下:

http://localhost           # 指向 app1
http://localhost/test2     # 指向 app2

我用的 passenger_base_uri 来分配资源,如下:

ln -s /Users/apple/app1/public test1
ln -s /Users/apple/app2/public test2 

编辑 nginx.conf

server {
    listen 80;
    server_name localhost;
    root /Users/apple/;
    passenger_enabled on;
    rails_env production;
    passenger_base_uri /test1;
    passenger_base_uri /test2;
}

可是这样只能实现下面的效果

http://localhost/test1       #   指向 app1
http://localhost/test2        #  指向 app2

请问我该怎么做?

解决了,修改 nginx.conf

  server {
    listen 80;
    server_name localhost;
    root /Users/apple/app1/public/;
    passenger_enabled on;
    rails_env production;

    location ^~ /test2/ {
       root /Users/apple/;
       passenger_enabled on;
       passenger_base_uri /test2;
    }
}

帮助帖子: http://ruby-china.org/topics/7915

1 楼 已删除

是问题问的不清楚还是太白痴…给个思路吧 大神们

#3 楼 @u1371780084 不行阿。指向 rails 项目后要访问其他资源,如: http://localhost/api/1 # 指向项目test1中的资源 用 rewrite 重写的应该是重定向吧。

location / {
   proxy_pass http://localhost:80/game;
}

添上以上代码,nginx 会出错,循环去寻找 game

你应该先熟读一下 nginx 官方的 wiki

需要 登录 后方可回复, 如果你还没有账号请 注册新账号