值从哪里来?nginx.conf.erb文件是什么?

时间:2019-06-21 12:57:31

标签: ruby-on-rails passenger

我正在使用在Heroku上运行的带有Rails的Phusion Passenger(独立)。配置文件在Procfile设置中传递。

我想更改历史记录nginx.conf.erb文件。我可以轻松添加新值,但是对我来说,变量值的来源并不明显。

文件示例:

[Pipeline] nexusArtifactUploader
...
Uploading: http://localhost:7777/repository/maven-snapshots/com/sample/sample-spring-managing-transactions/0.0.1-SNAPSHOT/sample-spring-managing-transactions-0.0.1-20190621.123700-7-debug.jar
...
Uploading artifact gs-managing-transactions-0.1.0.jar completed.
...
Uploading: http://localhost:7777/repository/maven-snapshots/com/sample/sample-spring-managing-transactions/0.0.1-SNAPSHOT/sample-spring-managing-transactions-0.0.1-20190621.123701-8-debug.pom
Uploading artifact pom.xml completed.

error_log '<%= @options[:log_file] %>' <% if @options[:log_level] >= LVL_DEBUG %>info<% end %>;
pid '<%= @options[:pid_file] %>';

<%= nginx_option :passenger_log_level, :log_level %>

那么@ options,@ app来自哪里?

1 个答案:

答案 0 :(得分:0)

如果您将nginx.conf.erb用于“乘客独立版”,我假设您只关心适用于“乘客”而不是nginx的选项。所有乘客选项都以前缀passenger_开头,在许多应用程序中普遍使用一些独特的选项,例如pid_filelog_file等,这些选项适用于乘客和nginx,但对于Standalone,它们仅适用于乘客。

这些选项来自于您使用以下命令行选项启动乘客流程:bundle exec passenger start --log-level=3 --log-file=tmp.log。如果未提供任何值,则它们将使用其默认值。例如,当您启动乘客时,将列出PID文件和日志文件的默认值。

$ bundle exec passenger start
======= Phusion Passenger Standalone web server started =======
PID file: /Users/phusion/myapp/tmp/pids/passenger.3000.pid   1
Log file: /Users/phusion/myapp/log/passenger.3000.log        2
Environment: development                     3
Accessible via: http://0.0.0.0:3000/         4

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
===============================================================

您可以通过多种方式设置这些选项,例如通过命令行,在Passengerfile.json中或通过环境变量来设置。

一个提示是,您还可以在binding.pry中设置nginx.conf.erb,并在调试模式下查看@options@apps包含的内容。

# Add this as to the top of nginx.conf.erb

<% require 'pry' %>
<% binding.pry %>

您可以在此处查看文档:

Starting a server

Command line options

Passenger Standalone

如果您决定使用Passenger + Nginx,您会关心其他选项,例如@apps和nginx本身在启动时需要设置的@options中的值。如果使用Passenger + Nginx,则只需要设置两个配置选项passenger_enabledpassenger_root

有关Passenger + Nginx的更多详细信息,请参见此处的文档:

Passenger + Nginx

Passenger + Nginx Configuration Reference