如何与nginx,passenger和redmine一起使用不同的rails_env

我需要与Nginx,phusion乘客和MysqL结合运行redmine。 由于该项目需要redmine的几个实例,这应该使用不同的rails_env来实现,我试图用Nginx将它们设置在不同的服务器虚拟主机中。

一个虚拟主机的例子:

server { listen xxxx; server_name redmine.xxxxx; root /xxxxx/redmine/public; passenger_enabled on; rails_env production; }

其他服务器虚拟主机也一样,但server_name与其他域匹配,而rails_env设置为内部。

问题是,Nginx对两个redmine实例只使用两个rails_env中的一个,而不是每个都使用一个。 任何build议如何使用不同的rails_env与相同的应用程序,Nginx和phusion乘客?

Phusion乘客错误:http.Server.listen()被多次调用

Rails / Passenger / Node.js:ExecJS“找不到JavaScript运行时”

Redmine 2.3,ruby 2.0.0,Nginx 1.4.1与乘客4.0.2所有HTTP POST失败

乘客Nginx模块服务名称注册在Ubuntu 12.04.2 lts

用OS X上的Phusion Passenger + Sinatra + Nginx修复权限错误

谢谢

Passenger + Nginx + Node(Meteor)100%的cpu使用率

用Bundler安装Gems ==大问题

Apache对POST请求大小的限制

乘客进程已经运行? 但不是

无法派生应用程序

我觉得你有和我一样的问题。 您希望使用相同的物理目录来托管应用程序实例,但是您希望通过使用不同的DNS条目(redmine.development / redmine.production)在不同的环境(开发/生产)下与应用程序进行交互。

问题在于,乘客将传入的请求识别为使用根目录上目录中找到的rails应用程序。 如果您在多个Nginx配置中对root使用相同的文字参考,则乘客会将请求转发到在root中找到的单个正在运行的实例。 即,如果您首先启动开发应用程序,然后尝试通过redmine.production访问生产,那么您将最终与开发环境进行交互。 但是,如果您先启动生产应用程序,然后尝试访问redmine.development,则最终将与生产进行交互。

答案就是将你应用程序的目录符号链接到你想要运行的每个环境。 Passenger只查看root的文字路径 – 如果它不匹配当前正在运行的实例,它会产生一个新的。

前)。

物理根是~/rails_apps/myserver (其中myserver包含应用程序,公共等)

创建一个名为~/rails_apps/dev.myserver的符号链接到~/rails_apps/myserver ,另一个名为~/rails_apps/pro.myserver的~/rails_apps/myserver 。

现在在你的Nginx配置里面,以root身份使用公共文件夹的符号链接位置。

例如,如果symlink /home/user/rails_apps/[dev|pro].redmine指向/ home / user / rails_apps / redmine

server { listen xxxx; server_name redmine.development; root /home/user/rails_apps/dev.redmine/public; passenger_enabled on; rails_env development; } server { listen xxxx; server_name redmine.production; root /home/user/rails_apps/pro.redmine/public; passenger_enabled on; rails_env production; }

Nginx乘客多次不符合… / app / public目录的符号链接,因为它期望它是一个不是文件的目录

但是,您可以使用PASSENGER_APP_GROUP_NAME指令。

喜欢这个:-

server { listen xxxx; server_name redmine.xxxxx; root /xxxxx/redmine/public; passenger_enabled on; rails_env production; passenger_app_group_name devlopment; } server { listen xxxx; server_name redmine.xxxxx; root /xxxxx/redmine/public; passenger_enabled on; rails_env production; passenger_app_group_name production }

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...