【发布时间】:2016-10-21 05:22:18
【问题描述】:
Nginx:使用 passenger-install-nignx-module 构建
客运版:5.0.28
操作系统:Ubuntu 14.04
我已将我的每个应用程序符号链接到它们自己的一组环境文件夹中:
- /存储库
- /development.manager
- /app
- ...
- /test.manager
- /staging.manager
- ...
- /development.manager
实际文件夹位于我硬盘上的另一个位置。所有这些文件夹都是指向该文件夹的符号链接。
问题是 Nginx 似乎没有正确设置乘客环境变量。检查日志它会引发一个没有意义的应用程序错误(并且 nginx 配置是自事情发生以来唯一改变的东西)。此外,错误页面显示状态:
因为您在登台或生产中运行此 Web 应用程序 模式,此网页已省略错误的详细信息 出于安全原因。
这意味着它没有使用开发环境,即使日志中的root 目录显示development.manager。这是我通过 url 访问的时候:http://manager-development/。
这是我的 nginx sites-enabled 配置的相关摘录:
server {
listen 80;
server_name ~^manager-(?<environment>development|test)$;
passenger_app_env $environment;
passenger_ruby /home/vagrant/.rvm/gems/ruby-2.3.1@manager/wrappers/ruby;
passenger_enabled on;
root /home/vagrant/apps/$environment.manager/public;
client_max_body_size 30M;
}
我感觉解决方案可能是我提供的答案 here 以及可能配置错误的 nginx 块的组合。
编辑:我在 Rails 应用程序中明确提出了一个错误,该应用程序将环境输出为字符串,它的字面意思是“$environment”...
【问题讨论】: