我正在使用在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来自哪里?
答案 0 :(得分:0)
如果您将nginx.conf.erb
用于“乘客独立版”,我假设您只关心适用于“乘客”而不是nginx的选项。所有乘客选项都以前缀passenger_
开头,在许多应用程序中普遍使用一些独特的选项,例如pid_file
,log_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 %>
您可以在此处查看文档:
如果您决定使用Passenger + Nginx,您会关心其他选项,例如@apps和nginx本身在启动时需要设置的@options中的值。如果使用Passenger + Nginx,则只需要设置两个配置选项passenger_enabled
和passenger_root
。
有关Passenger + Nginx的更多详细信息,请参见此处的文档: