passenger 4.0.14 → 4.0.16
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data.tar.gz.asc +7 -7
- data/NEWS +69 -0
- data/bin/passenger-install-apache2-module +7 -1
- data/bin/passenger-install-nginx-module +18 -1
- data/build/apache2.rb +25 -1
- data/build/basics.rb +7 -4
- data/build/debian.rb +72 -25
- data/build/nginx.rb +24 -0
- data/build/packaging.rb +45 -3
- data/debian.template/{control → control.template} +17 -8
- data/debian.template/ruby-passenger.install.template +1 -0
- data/debian.template/rules.template +9 -3
- data/dev/run_travis.sh +14 -0
- data/doc/Users guide Apache.idmap.txt +64 -48
- data/doc/Users guide Apache.txt +127 -93
- data/doc/Users guide Nginx.idmap.txt +46 -28
- data/doc/Users guide Nginx.txt +100 -12
- data/doc/images/{conservative_spawning.png → direct_spawning.png} +0 -0
- data/doc/images/{conservative_spawning.svg → direct_spawning.svg} +0 -0
- data/doc/users_guide_snippets/installation.txt +107 -66
- data/doc/users_guide_snippets/passenger_spawn_method.txt +1 -1
- data/doc/users_guide_snippets/rvm_helper_tool.txt +0 -12
- data/doc/users_guide_snippets/tips.txt +70 -3
- data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +2 -0
- data/doc/users_guide_snippets/under_the_hood/relationship_with_ruby.txt +114 -0
- data/ext/apache2/Configuration.cpp +53 -101
- data/ext/apache2/Configuration.hpp +19 -41
- data/ext/apache2/ConfigurationCommands.cpp +95 -0
- data/ext/apache2/ConfigurationCommands.cpp.erb +91 -0
- data/ext/apache2/ConfigurationFields.hpp +59 -0
- data/ext/apache2/ConfigurationFields.hpp.erb +89 -0
- data/ext/apache2/ConfigurationSetters.cpp +223 -0
- data/ext/apache2/ConfigurationSetters.cpp.erb +126 -0
- data/ext/apache2/CreateDirConfig.cpp +50 -0
- data/ext/apache2/CreateDirConfig.cpp.erb +71 -0
- data/ext/apache2/Hooks.cpp +6 -0
- data/ext/apache2/MergeDirConfig.cpp +103 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +81 -0
- data/ext/common/ApplicationPool2/AppTypes.cpp +2 -0
- data/ext/common/ApplicationPool2/AppTypes.h +2 -0
- data/ext/common/ApplicationPool2/Common.h +1 -1
- data/ext/common/ApplicationPool2/Group.h +56 -7
- data/ext/common/ApplicationPool2/Implementation.cpp +133 -31
- data/ext/common/ApplicationPool2/Options.h +23 -2
- data/ext/common/ApplicationPool2/Pool.h +8 -1
- data/ext/common/ApplicationPool2/Process.h +9 -0
- data/ext/common/ApplicationPool2/Session.h +1 -0
- data/ext/common/ApplicationPool2/Spawner.h +21 -19
- data/ext/common/ApplicationPool2/SuperGroup.h +1 -1
- data/ext/common/Constants.h +21 -17
- data/ext/common/Constants.h.erb +1 -1
- data/ext/common/Exceptions.h +19 -0
- data/ext/common/ServerInstanceDir.h +8 -4
- data/ext/common/Utils.cpp +33 -1
- data/ext/common/Utils.h +14 -0
- data/ext/common/Utils/StrIntUtils.cpp +16 -0
- data/ext/common/Utils/StrIntUtils.h +5 -0
- data/ext/common/agents/HelperAgent/Main.cpp +5 -5
- data/ext/common/agents/HelperAgent/RequestHandler.h +94 -45
- data/ext/common/agents/LoggingAgent/Main.cpp +10 -26
- data/ext/common/agents/Watchdog/Main.cpp +4 -15
- data/ext/nginx/CacheLocationConfig.c +501 -0
- data/ext/nginx/CacheLocationConfig.c.erb +140 -0
- data/ext/nginx/Configuration.c +29 -453
- data/ext/nginx/Configuration.h +3 -21
- data/ext/nginx/ConfigurationCommands.c +501 -0
- data/ext/nginx/ConfigurationCommands.c.erb +136 -0
- data/ext/nginx/ConfigurationFields.h +89 -0
- data/ext/nginx/ConfigurationFields.h.erb +85 -0
- data/ext/nginx/ContentHandler.c +3 -166
- data/ext/nginx/CreateLocationConfig.c +146 -0
- data/ext/nginx/CreateLocationConfig.c.erb +70 -0
- data/ext/nginx/MergeLocationConfig.c +166 -0
- data/ext/nginx/MergeLocationConfig.c.erb +72 -0
- data/ext/nginx/config +4 -0
- data/ext/oxt/detail/tracable_exception_disabled.hpp +21 -1
- data/ext/oxt/detail/tracable_exception_enabled.hpp +4 -1
- data/ext/oxt/implementation.cpp +7 -1
- data/ext/oxt/macros.hpp +9 -7
- data/helper-scripts/backtrace-sanitizer.rb +23 -0
- data/helper-scripts/classic-rails-loader.rb +23 -0
- data/helper-scripts/classic-rails-preloader.rb +23 -0
- data/helper-scripts/download_binaries/extconf.rb +10 -5
- data/helper-scripts/meteor-loader.rb +127 -0
- data/helper-scripts/node-loader.js +1 -1
- data/helper-scripts/rack-preloader.rb +23 -0
- data/helper-scripts/system-memory-stats.py +22 -0
- data/helper-scripts/touch-dir.sh +48 -0
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/apache2/config_options.rb +104 -0
- data/lib/phusion_passenger/constants.rb +8 -0
- data/lib/phusion_passenger/native_support.rb +9 -1
- data/lib/phusion_passenger/nginx/config_options.rb +328 -0
- data/lib/phusion_passenger/packaging.rb +2 -2
- data/lib/phusion_passenger/platform_info/apache.rb +8 -0
- data/lib/phusion_passenger/platform_info/compiler.rb +2 -2
- data/lib/phusion_passenger/rails3_extensions/init.rb +19 -4
- data/lib/phusion_passenger/ruby_core_enhancements.rb +4 -1
- data/lib/phusion_passenger/standalone/app_finder.rb +3 -2
- data/lib/phusion_passenger/standalone/command.rb +1 -0
- data/lib/phusion_passenger/standalone/runtime_installer.rb +1 -6
- data/lib/phusion_passenger/standalone/runtime_locator.rb +9 -2
- data/lib/phusion_passenger/standalone/start_command.rb +45 -9
- data/lib/phusion_passenger/utils.rb +4 -1
- data/resources/templates/{nginx → installer_common}/run_installer_as_root.txt.erb +3 -1
- data/resources/templates/nginx/nginx_module_sources_not_available.txt.erb +6 -0
- data/resources/templates/standalone/config.erb +8 -8
- data/test/cxx/ApplicationPool2/PoolTest.cpp +120 -3
- data/test/cxx/RequestHandlerTest.cpp +66 -3
- data/test/integration_tests/native_packaging_spec.rb +41 -0
- data/test/integration_tests/nginx_tests.rb +1 -0
- data/test/integration_tests/standalone_tests.rb +4 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_sharedspec.rb +22 -0
- data/test/stub/rails3.0/config/initializers/passenger.rb +2 -1
- data/test/stub/rails3.1/config/initializers/passenger.rb +2 -1
- data/test/stub/rails3.2/config/initializers/passenger.rb +2 -1
- data/test/stub/rails4.0/config/initializers/passenger.rb +5 -1
- data/test/stub/wsgi/passenger_wsgi.py +5 -0
- metadata +32 -7
- metadata.gz.asc +7 -7
- data/resources/templates/apache2/run_installer_as_root.txt.erb +0 -8
data/lib/phusion_passenger.rb
CHANGED
@@ -30,7 +30,7 @@ module PhusionPassenger
|
|
30
30
|
|
31
31
|
PACKAGE_NAME = 'passenger'
|
32
32
|
# Run 'rake ext/common/Constants.h' after changing this number.
|
33
|
-
VERSION_STRING = '4.0.
|
33
|
+
VERSION_STRING = '4.0.16'
|
34
34
|
|
35
35
|
PREFERRED_NGINX_VERSION = '1.4.2'
|
36
36
|
NGINX_SHA256_CHECKSUM = '5361ffb7b0ebf8b1a04369bc3d1295eaed091680c1c58115f88d56c8e51f3611'
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
+
# Copyright (c) 2013 Phusion
|
3
|
+
#
|
4
|
+
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
|
24
|
+
# This file defines all supported Apache per-directory configuration options. The
|
25
|
+
# build system automatically generates the corresponding Apache module boilerplate
|
26
|
+
# code from the definitions in this file.
|
27
|
+
#
|
28
|
+
# Main configuration options are not defined in this file, but are defined in
|
29
|
+
# ext/apache2/Configuraion.cpp instead.
|
30
|
+
#
|
31
|
+
# The following boilerplate code is generated:
|
32
|
+
#
|
33
|
+
# * command_rec array members (ConfigurationCommands.cpp.erb)
|
34
|
+
#
|
35
|
+
# Options:
|
36
|
+
#
|
37
|
+
# * name - The configuration option name. Required.
|
38
|
+
# * context - The context in which this configuration option is valid.
|
39
|
+
# Defaults to ["OR_OPTIONS", "ACCESS_CONF", "RSRC_CONF"]
|
40
|
+
# * type - This configuration option's value type. Allowed types:
|
41
|
+
# :string, :integer, :flag
|
42
|
+
# * min_value - If `type` is :integer, then this specifies the minimum
|
43
|
+
# allowed value. When nil (the default), there is no minimum.
|
44
|
+
# * desc - A description for this configuration option. Required.
|
45
|
+
|
46
|
+
APACHE2_DIRECTORY_CONFIGURATION_OPTIONS = [
|
47
|
+
{
|
48
|
+
:name => "PassengerRuby",
|
49
|
+
:type => :string,
|
50
|
+
:desc => "The Ruby interpreter to use."
|
51
|
+
},
|
52
|
+
{
|
53
|
+
:name => "PassengerMinInstances",
|
54
|
+
:type => :integer,
|
55
|
+
:context => ["OR_LIMIT", "ACCESS_CONF", "RSRC_CONF"],
|
56
|
+
:min_value => 0,
|
57
|
+
:desc => "The minimum number of application instances to keep when cleaning idle instances."
|
58
|
+
},
|
59
|
+
{
|
60
|
+
:name => "PassengerUser",
|
61
|
+
:type => :string,
|
62
|
+
:context => ["ACCESS_CONF", "RSRC_CONF"],
|
63
|
+
:desc => "The user that Ruby applications must run as."
|
64
|
+
},
|
65
|
+
{
|
66
|
+
:name => "PassengerGroup",
|
67
|
+
:type => :string,
|
68
|
+
:context => ["ACCESS_CONF", "RSRC_CONF"],
|
69
|
+
:desc => "The group that Ruby applications must run as."
|
70
|
+
},
|
71
|
+
{
|
72
|
+
:name => "PassengerMaxRequests",
|
73
|
+
:type => :integer,
|
74
|
+
:context => ["OR_LIMIT", "ACCESS_CONF", "RSRC_CONF"],
|
75
|
+
:min_value => 0,
|
76
|
+
:desc => "The maximum number of requests that an application instance may process."
|
77
|
+
},
|
78
|
+
{
|
79
|
+
:name => "PassengerStartTimeout",
|
80
|
+
:type => :integer,
|
81
|
+
:context => ["OR_LIMIT", "ACCESS_CONF", "RSRC_CONF"],
|
82
|
+
:min_value => 1,
|
83
|
+
:desc => "A timeout for application startup."
|
84
|
+
},
|
85
|
+
{
|
86
|
+
:name => "PassengerHighPerformance",
|
87
|
+
:type => :flag,
|
88
|
+
:context => ["OR_ALL"],
|
89
|
+
:desc => "Enable or disable Passenger's high performance mode."
|
90
|
+
},
|
91
|
+
{
|
92
|
+
:name => "PassengerEnabled",
|
93
|
+
:type => :flag,
|
94
|
+
:context => ["OR_ALL"],
|
95
|
+
:desc => "Enable or disable Phusion Passenger."
|
96
|
+
},
|
97
|
+
{
|
98
|
+
:name => "PassengerMaxRequestQueueSize",
|
99
|
+
:type => :integer,
|
100
|
+
:min_value => 0,
|
101
|
+
:context => ["OR_ALL"],
|
102
|
+
:desc => "The maximum number of queued requests."
|
103
|
+
}
|
104
|
+
]
|
@@ -39,6 +39,7 @@ module PhusionPassenger
|
|
39
39
|
DEFAULT_PYTHON = "python"
|
40
40
|
DEFAULT_MAX_POOL_SIZE = 6
|
41
41
|
DEFAULT_POOL_IDLE_TIME = 300
|
42
|
+
DEFAULT_START_TIMEOUT = 90_000
|
42
43
|
DEFAULT_MAX_INSTANCES_PER_APP = 0
|
43
44
|
DEFAULT_WEB_APP_USER = "nobody"
|
44
45
|
DEFAULT_ANALYTICS_LOG_USER = DEFAULT_WEB_APP_USER
|
@@ -65,6 +66,13 @@ module PhusionPassenger
|
|
65
66
|
|
66
67
|
# Misc
|
67
68
|
FEEDBACK_FD = 3
|
69
|
+
STANDALONE_NGINX_CONFIGURE_OPTIONS =
|
70
|
+
"--with-cc-opt='-Wno-error' " <<
|
71
|
+
"--without-http_fastcgi_module " <<
|
72
|
+
"--without-http_scgi_module " <<
|
73
|
+
"--without-http_uwsgi_module " <<
|
74
|
+
"--with-http_gzip_static_module " <<
|
75
|
+
"--with-http_stub_status_module"
|
68
76
|
end
|
69
77
|
|
70
78
|
SharedConstants.constants.each do |name|
|
@@ -185,8 +185,15 @@ private
|
|
185
185
|
end
|
186
186
|
|
187
187
|
def compile_and_load
|
188
|
+
if ENV['PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY'] == '0'
|
189
|
+
STDERR.puts "*** Phusion Passenger: PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY set, " +
|
190
|
+
"not compiling native_support"
|
191
|
+
return false
|
192
|
+
end
|
193
|
+
|
188
194
|
STDERR.puts "*** Phusion Passenger: no #{library_name} found for " +
|
189
|
-
"the current Ruby interpreter. Compiling one
|
195
|
+
"the current Ruby interpreter. Compiling one (set " +
|
196
|
+
"PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)..."
|
190
197
|
|
191
198
|
require 'fileutils'
|
192
199
|
require 'phusion_passenger/platform_info/ruby'
|
@@ -196,6 +203,7 @@ private
|
|
196
203
|
require "#{target_dir}/#{library_name}"
|
197
204
|
else
|
198
205
|
STDERR.puts "Ruby native_support extension not loaded. Continuing without native_support."
|
206
|
+
return false
|
199
207
|
end
|
200
208
|
end
|
201
209
|
|
@@ -0,0 +1,328 @@
|
|
1
|
+
# Phusion Passenger - https://www.phusionpassenger.com/
|
2
|
+
# Copyright (c) 2013 Phusion
|
3
|
+
#
|
4
|
+
# "Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
|
24
|
+
# This file defines all supported Nginx per-location configuration options. The
|
25
|
+
# build system automatically generates the corresponding Nginx module boilerplate
|
26
|
+
# code from the definitions in this file.
|
27
|
+
#
|
28
|
+
# Main configuration options are not defined in this file, but are defined in
|
29
|
+
# ext/nginx/Configuraion.c instead.
|
30
|
+
#
|
31
|
+
# The following boilerplate code is generated:
|
32
|
+
#
|
33
|
+
# * ngx_command_t array members (ConfigurationCommands.c.erb)
|
34
|
+
# * Location configuration structure definition (ConfigurationFields.h.erb)
|
35
|
+
# * Location configuration structure initialization (CreateLocationConfig.c.erb)
|
36
|
+
# * Location configuration merging (MergeLocationConfig.c.erb)
|
37
|
+
# * Conversion of configuration options to CGI headers (CacheLocationConfig.c.erb)
|
38
|
+
#
|
39
|
+
# Options:
|
40
|
+
#
|
41
|
+
# * name - The configuration option name. Required.
|
42
|
+
# * context - The context in which this configuration option is valid.
|
43
|
+
# Defaults to [:main, :srv, :loc, :lif]
|
44
|
+
# * type - This configuration option's value type. Allowed types:
|
45
|
+
# :string, :integer, :flag, :string_array, :string_keyval
|
46
|
+
# * take - Tells Nginx how many parameters and what kind of parameter
|
47
|
+
# this configuration option takes. It should be set to a string
|
48
|
+
# such as "NGX_CONF_FLAG".
|
49
|
+
# By default this is automatically inferred from `type`: for
|
50
|
+
# example if `type` is :string then ConfigurationCommands.c.erb
|
51
|
+
# will infer that `NGX_CONF_TAKE1` should be used.
|
52
|
+
# * function - The name of the function that should be used to store the
|
53
|
+
# configuration value into the corresponding structure. This function
|
54
|
+
# is not auto-generated, so it must be the name of an existing
|
55
|
+
# function. By default, the function name is automatically inferred
|
56
|
+
# from `type`. For example if `type` is string then `function` is
|
57
|
+
# inferred to be `ngx_conf_set_str_slot`.
|
58
|
+
# If you set this to a string then you are responsible for defining
|
59
|
+
# said function in Configuration.c.
|
60
|
+
# * struct - The type of the struct that the field is contained in. Something like
|
61
|
+
# "NGX_HTTP_LOC_CONF_OFFSET" (which is also the default).
|
62
|
+
# * field - The name that should be used for the auto-generated field in
|
63
|
+
# the location configuration structure. Defaults to the configuration
|
64
|
+
# name without the 'passenger_' prefix. Set this to nil if you do not
|
65
|
+
# want a structure field to be auto-generated. If the field name contains
|
66
|
+
# a dot (.e.g `upstream_config.pass_headers`) then the structure field will
|
67
|
+
# also not be auto-generated, because it is assumed to belong to an existing
|
68
|
+
# structure field.
|
69
|
+
# * header - The name of the corresponding CGI header. By default CGI header
|
70
|
+
# generation code is automatically generated, using the configuration
|
71
|
+
# option's name in uppercase as the CGI header name.
|
72
|
+
# Setting this to nil, or setting `field` to a value containing a dot,
|
73
|
+
# will disable auto-generation of CGI header generation code. You are
|
74
|
+
# then responsible for writing CGI header passing code yourself in
|
75
|
+
# ContentHandler.c.
|
76
|
+
# * auto_generate_nginx_merge_code - Whether location configuration merging
|
77
|
+
# code should be automatically generated. Defaults to true. If you set
|
78
|
+
# this to false then you are responsible for writing merging code
|
79
|
+
# yourself in Configuration.c.
|
80
|
+
# * alias_for - Set this if this configuration option is an alias for another
|
81
|
+
# option. Alias definitions must only have the `name` and `alias_for`
|
82
|
+
# fields, nothing else.
|
83
|
+
|
84
|
+
|
85
|
+
LOCATION_CONFIGURATION_OPTIONS = [
|
86
|
+
{
|
87
|
+
:name => 'passenger_enabled',
|
88
|
+
:context => [:srv, :loc, :lif],
|
89
|
+
:type => :flag,
|
90
|
+
:function => 'passenger_enabled',
|
91
|
+
:field => 'enabled',
|
92
|
+
:header => nil
|
93
|
+
},
|
94
|
+
{
|
95
|
+
:name => 'passenger_ruby',
|
96
|
+
:context => [:srv, :loc, :lif],
|
97
|
+
:type => :string
|
98
|
+
},
|
99
|
+
{
|
100
|
+
:name => 'passenger_python',
|
101
|
+
:type => :string
|
102
|
+
},
|
103
|
+
{
|
104
|
+
:name => 'passenger_app_env',
|
105
|
+
:type => :string,
|
106
|
+
:field => 'environment',
|
107
|
+
:header => 'PASSENGER_ENV'
|
108
|
+
},
|
109
|
+
{
|
110
|
+
:name => 'passenger_friendly_error_pages',
|
111
|
+
:type => :flag
|
112
|
+
},
|
113
|
+
{
|
114
|
+
:name => 'passenger_min_instances',
|
115
|
+
:type => :integer
|
116
|
+
},
|
117
|
+
{
|
118
|
+
:name => 'passenger_max_requests',
|
119
|
+
:type => :integer
|
120
|
+
},
|
121
|
+
{
|
122
|
+
:name => 'passenger_start_timeout',
|
123
|
+
:type => :integer
|
124
|
+
},
|
125
|
+
{
|
126
|
+
:name => 'passenger_base_uri',
|
127
|
+
:type => :string_array,
|
128
|
+
:field => 'base_uris',
|
129
|
+
:header => nil,
|
130
|
+
:auto_generate_nginx_merge_code => false
|
131
|
+
},
|
132
|
+
{
|
133
|
+
:name => 'passenger_user',
|
134
|
+
:type => :string
|
135
|
+
},
|
136
|
+
{
|
137
|
+
:name => 'passenger_group',
|
138
|
+
:type => :string
|
139
|
+
},
|
140
|
+
{
|
141
|
+
:name => 'passenger_app_group_name',
|
142
|
+
:type => :string
|
143
|
+
},
|
144
|
+
{
|
145
|
+
:name => 'passenger_app_root',
|
146
|
+
:type => :string
|
147
|
+
},
|
148
|
+
{
|
149
|
+
:name => 'passenger_app_rights',
|
150
|
+
:type => :string
|
151
|
+
},
|
152
|
+
{
|
153
|
+
:name => 'union_station_support',
|
154
|
+
:type => :flag
|
155
|
+
},
|
156
|
+
{
|
157
|
+
:name => 'union_station_filter',
|
158
|
+
:take => 'NGX_CONF_TAKE1',
|
159
|
+
:type => :string_array,
|
160
|
+
:function => 'union_station_filter',
|
161
|
+
:field => 'union_station_filters',
|
162
|
+
:header => nil,
|
163
|
+
:auto_generate_nginx_merge_code => false
|
164
|
+
},
|
165
|
+
{
|
166
|
+
:name => 'passenger_debugger',
|
167
|
+
:type => :flag
|
168
|
+
},
|
169
|
+
{
|
170
|
+
:name => 'passenger_show_version_in_header',
|
171
|
+
:type => :flag
|
172
|
+
},
|
173
|
+
{
|
174
|
+
:name => 'passenger_max_preloader_idle_time',
|
175
|
+
:type => :integer
|
176
|
+
},
|
177
|
+
{
|
178
|
+
:name => 'passenger_ignore_headers',
|
179
|
+
:take => 'NGX_CONF_1MORE',
|
180
|
+
:function => 'ngx_conf_set_bitmask_slot',
|
181
|
+
:field => 'upstream_config.ignore_headers'
|
182
|
+
},
|
183
|
+
{
|
184
|
+
:name => 'passenger_set_cgi_param',
|
185
|
+
:type => :string_keyval,
|
186
|
+
:field => 'vars_source',
|
187
|
+
:header => nil,
|
188
|
+
:auto_generate_nginx_merge_code => false
|
189
|
+
},
|
190
|
+
{
|
191
|
+
:name => 'passenger_pass_header',
|
192
|
+
:type => :string_array,
|
193
|
+
:field => 'upstream_config.pass_headers'
|
194
|
+
},
|
195
|
+
{
|
196
|
+
:name => 'passenger_ignore_client_abort',
|
197
|
+
:type => :flag,
|
198
|
+
:field => 'upstream_config.ignore_client_abort'
|
199
|
+
},
|
200
|
+
{
|
201
|
+
:name => 'passenger_buffer_response',
|
202
|
+
:type => :flag,
|
203
|
+
:field => 'upstream_config.buffering'
|
204
|
+
},
|
205
|
+
{
|
206
|
+
:name => 'passenger_buffer_size',
|
207
|
+
:take => 'NGX_CONF_TAKE1',
|
208
|
+
:function => 'ngx_conf_set_size_slot',
|
209
|
+
:field => 'upstream_config.buffer_size'
|
210
|
+
},
|
211
|
+
{
|
212
|
+
:name => 'passenger_buffers',
|
213
|
+
:take => 'NGX_CONF_TAKE2',
|
214
|
+
:function => 'ngx_conf_set_bufs_slot',
|
215
|
+
:field => 'upstream_config.bufs'
|
216
|
+
},
|
217
|
+
{
|
218
|
+
:name => 'passenger_busy_buffers_size',
|
219
|
+
:take => 'NGX_CONF_TAKE1',
|
220
|
+
:function => 'ngx_conf_set_size_slot',
|
221
|
+
:field => 'upstream_config.busy_buffers_size_conf'
|
222
|
+
},
|
223
|
+
{
|
224
|
+
:name => 'passenger_intercept_errors',
|
225
|
+
:type => :flag,
|
226
|
+
:field => 'upstream_config.intercept_errors'
|
227
|
+
},
|
228
|
+
{
|
229
|
+
:name => 'passenger_spawn_method',
|
230
|
+
:type => :string
|
231
|
+
},
|
232
|
+
{
|
233
|
+
:name => 'union_station_key',
|
234
|
+
:type => :string
|
235
|
+
},
|
236
|
+
{
|
237
|
+
:name => 'passenger_max_request_queue_size',
|
238
|
+
:type => :integer
|
239
|
+
},
|
240
|
+
{
|
241
|
+
:name => 'passenger_request_queue_overflow_status_code',
|
242
|
+
:type => :integer
|
243
|
+
},
|
244
|
+
|
245
|
+
###### Enterprise features ######
|
246
|
+
{
|
247
|
+
:context => [:main],
|
248
|
+
:name => 'passenger_fly_with',
|
249
|
+
:type => :string,
|
250
|
+
:struct => "NGX_HTTP_MAIN_CONF_OFFSET",
|
251
|
+
:function => 'passenger_enterprise_only',
|
252
|
+
:field => nil
|
253
|
+
},
|
254
|
+
{
|
255
|
+
:name => 'passenger_max_instances',
|
256
|
+
:type => :integer,
|
257
|
+
:function => 'passenger_enterprise_only',
|
258
|
+
:field => nil
|
259
|
+
},
|
260
|
+
{
|
261
|
+
:name => 'passenger_max_request_time',
|
262
|
+
:type => :integer,
|
263
|
+
:function => 'passenger_enterprise_only',
|
264
|
+
:field => nil
|
265
|
+
},
|
266
|
+
{
|
267
|
+
:name => 'passenger_memory_limit',
|
268
|
+
:type => :integer,
|
269
|
+
:function => 'passenger_enterprise_only',
|
270
|
+
:field => nil
|
271
|
+
},
|
272
|
+
{
|
273
|
+
:name => 'passenger_concurrency_model',
|
274
|
+
:type => :string,
|
275
|
+
:function => 'passenger_enterprise_only',
|
276
|
+
:field => nil
|
277
|
+
},
|
278
|
+
{
|
279
|
+
:name => 'passenger_thread_count',
|
280
|
+
:type => :integer,
|
281
|
+
:function => 'passenger_enterprise_only',
|
282
|
+
:field => nil
|
283
|
+
},
|
284
|
+
{
|
285
|
+
:name => 'passenger_rolling_restarts',
|
286
|
+
:type => :flag,
|
287
|
+
:function => 'passenger_enterprise_only',
|
288
|
+
:field => nil
|
289
|
+
},
|
290
|
+
{
|
291
|
+
:name => 'passenger_resist_deployment_errors',
|
292
|
+
:type => :flag,
|
293
|
+
:function => 'passenger_enterprise_only',
|
294
|
+
:field => nil
|
295
|
+
},
|
296
|
+
|
297
|
+
###### Aliases for backwards compatibility ######
|
298
|
+
{
|
299
|
+
:name => 'rails_spawn_method',
|
300
|
+
:alias_for => 'passenger_spawn_method'
|
301
|
+
},
|
302
|
+
{
|
303
|
+
:name => 'rails_env',
|
304
|
+
:alias_for => 'passenger_app_env'
|
305
|
+
},
|
306
|
+
{
|
307
|
+
:name => 'rack_env',
|
308
|
+
:alias_for => 'passenger_app_env'
|
309
|
+
},
|
310
|
+
{
|
311
|
+
:name => 'rails_app_spawner_idle_time',
|
312
|
+
:alias_for => 'passenger_max_preloader_idle_time'
|
313
|
+
},
|
314
|
+
|
315
|
+
###### Obsolete options ######
|
316
|
+
{
|
317
|
+
:name => 'rails_framework_spawner_idle_time',
|
318
|
+
:take => 'NGX_CONF_TAKE1',
|
319
|
+
:function => 'rails_framework_spawner_idle_time',
|
320
|
+
:field => nil
|
321
|
+
},
|
322
|
+
{
|
323
|
+
:name => 'passenger_use_global_queue',
|
324
|
+
:take => 'NGX_CONF_FLAG',
|
325
|
+
:function => 'passenger_use_global_queue',
|
326
|
+
:field => nil
|
327
|
+
}
|
328
|
+
]
|