抱歉,这个问题可能已经被回答了,但我找不到对我有帮助的答案。
我的情况是这样的。我们有一个名为“helper.local.company”的内部服务器,我们目前使用它来运行 Rails 应用程序。要到达那里,用户只需键入“helper.local.company/ror_app1_route”
我现在想在服务器上安装另一个应用程序,然后让用户只输入 helper.local.company/ror_app2_route 来访问新应用程序。
我当前的 nginx 配置文件如下所示:
server {
listen 80 default_server;
server_name helper.local.company;
root /var/www/apps/ror_app1/current/public;
passenger_enabled on;
rack_env production;
}
为了让两个 Rails 应用程序无需使用子域即可工作,我需要更改或添加什么?
谢谢
最佳答案
你需要什么关键字是'passenger_base_uri'
引用自:http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rails_to_sub_uri
下面是一个简单的例子
假设您已经有一个服务器虚拟主机条目:
http {
...
server {
listen 80;
server_name www.phusion.nl;
root /websites/phusion;
}
...
}
并且您希望可以从 URL http://www.phusion.nl/rails 访问您的 Ruby on Rails 应用程序。 .
为此,请在虚拟主机的文档根目录中创建一个符号链接(symbolic link),并让它指向您的 Ruby on Rails 应用程序的公共(public)文件夹。例如:
ln -s /webapps/mycook/public /websites/phusion/rails
接下来,设置passenger_enabled 并将passenger_base_uri 选项添加到服务器 block :
http {
...
server {
listen 80;
server_name www.phusion.nl;
root /websites/phusion;
passenger_enabled on; # <--- These lines have
passenger_base_uri /rails; # <--- been added.
}
...
}
然后重启 Nginx。现在已经部署了应用程序。
通过多次指定passenger_base_uri,您可以在虚拟主机下部署多个Rails 应用程序。例如:
server {
...
passenger_base_uri /app1;
passenger_base_uri /app2;
passenger_base_uri /app3;
}
关于ruby-on-rails - Nginx 配置 : one Server name and two Applications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245339/