- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要让 redmine 与 nginx、phusion 乘客和 mysql 结合运行。由于项目需要多个redmine的实例,应该使用不同的rails_env来实现,所以我尝试用nginx将它们设置在不同的服务器vhost中。
一个虚拟主机的示例:
server {
listen xxxx;
server_name redmine.xxxxx;
root /xxxxx/redmine/public;
passenger_enabled on;
rails_env production;
}
最佳答案
我想你遇到了和我一样的问题。您想使用相同的物理目录来托管应用程序实例,但您想通过使用不同的 DNS 条目(redmine.development/redmine.production)与不同环境(开发/生产)下的应用程序交互?
问题是乘客将传入请求识别为使用在根目录上方的目录中找到的 rails 应用程序。如果您在多个 nginx 配置中对 root 使用相同的文字引用,则乘客会将请求转发到在 root 中找到的单个运行实例。即,如果您先启动开发应用程序,然后尝试通过 redmine.production 访问生产环境,您最终将与开发环境进行交互。但是,如果您首先启动您的生产应用程序,然后尝试访问 redmine.development,您最终将与生产进行交互。
答案是为您要运行的每个环境符号链接(symbolic link)您的应用程序目录。乘客只查看到 root 的文字路径 - 如果它与当前正在运行的实例不匹配,它将产生一个新实例。
前任。)
物理根是 ~/rails_apps/myserver
(其中 myserver 包含 app、public 等)
创建一个名为 ~/rails_apps/dev.myserver
的符号链接(symbolic link)至~/rails_apps/myserver
另一个叫 ~/rails_apps/pro.myserver
至~/rails_apps/myserver
.
现在在您的 nginx 配置中,以 root 身份使用指向公共(public)文件夹的符号链接(symbolic link)位置。
例如,如果符号链接(symbolic link)/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;
}
关于ruby-on-rails - 如何在 nginx、passenger 和 redmine 中使用不同的 rails_env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092225/
我是一名优秀的程序员,十分优秀!