passenger 5.0.0.beta3 → 5.0.0.rc1

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.

Files changed (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +11 -5
  5. data/CHANGELOG +38 -0
  6. data/CONTRIBUTING.md +1 -4
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +0 -2
  9. data/Rakefile +33 -33
  10. data/bin/passenger +1 -1
  11. data/bin/passenger-config +1 -1
  12. data/bin/passenger-install-apache2-module +800 -800
  13. data/bin/passenger-install-nginx-module +592 -592
  14. data/bin/passenger-memory-stats +127 -127
  15. data/bin/passenger-status +216 -216
  16. data/build/agents.rb +127 -127
  17. data/build/apache2.rb +87 -87
  18. data/build/basics.rb +60 -60
  19. data/build/common_library.rb +165 -165
  20. data/build/cplusplus_support.rb +51 -51
  21. data/build/cxx_tests.rb +268 -268
  22. data/build/debian.rb +143 -143
  23. data/build/documentation.rb +58 -58
  24. data/build/integration_tests.rb +81 -81
  25. data/build/misc.rb +132 -132
  26. data/build/nginx.rb +20 -20
  27. data/build/node_tests.rb +7 -7
  28. data/build/oxt_tests.rb +14 -14
  29. data/build/packaging.rb +570 -570
  30. data/build/preprocessor.rb +260 -260
  31. data/build/rake_extensions.rb +71 -71
  32. data/build/ruby_extension.rb +29 -29
  33. data/build/ruby_tests.rb +6 -6
  34. data/build/test_basics.rb +37 -37
  35. data/debian.template/control.template +3 -5
  36. data/dev/copy_boost_headers +134 -134
  37. data/dev/install_scripts_bootstrap_code.rb +25 -25
  38. data/dev/list_tests +20 -20
  39. data/dev/ruby_server.rb +223 -223
  40. data/dev/runner +18 -18
  41. data/doc/ServerOptimizationGuide.txt.md +55 -2
  42. data/doc/Users guide Nginx.txt +0 -26
  43. data/doc/Users guide Standalone.txt +5 -1
  44. data/doc/users_guide_snippets/tips.txt +9 -0
  45. data/ext/common/ApplicationPool2/Group.h +23 -11
  46. data/ext/common/ApplicationPool2/Implementation.cpp +32 -7
  47. data/ext/common/ApplicationPool2/Pool.h +22 -17
  48. data/ext/common/ApplicationPool2/SmartSpawner.h +4 -1
  49. data/ext/common/ApplicationPool2/Spawner.h +1 -1
  50. data/ext/common/Constants.h +1 -1
  51. data/ext/common/agents/Base.cpp +35 -20
  52. data/ext/common/agents/HelperAgent/Main.cpp +8 -1
  53. data/ext/common/agents/HelperAgent/OptionParser.h +18 -4
  54. data/ext/common/agents/HelperAgent/RequestHandler.h +2 -83
  55. data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +54 -1
  56. data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +7 -4
  57. data/ext/common/agents/Main.cpp +1 -1
  58. data/ext/common/agents/Watchdog/Main.cpp +54 -19
  59. data/ext/nginx/Configuration.c +7 -0
  60. data/ext/nginx/ContentHandler.c +9 -1
  61. data/helper-scripts/backtrace-sanitizer.rb +106 -87
  62. data/helper-scripts/crash-watch.rb +32 -0
  63. data/helper-scripts/download_binaries/extconf.rb +38 -38
  64. data/helper-scripts/meteor-loader.rb +107 -107
  65. data/helper-scripts/prespawn +101 -101
  66. data/helper-scripts/rack-loader.rb +96 -96
  67. data/helper-scripts/rack-preloader.rb +137 -137
  68. data/lib/phusion_passenger.rb +292 -292
  69. data/lib/phusion_passenger/abstract_installer.rb +438 -438
  70. data/lib/phusion_passenger/active_support3_extensions/init.rb +168 -170
  71. data/lib/phusion_passenger/admin_tools.rb +20 -20
  72. data/lib/phusion_passenger/admin_tools/instance.rb +178 -178
  73. data/lib/phusion_passenger/admin_tools/instance_registry.rb +61 -61
  74. data/lib/phusion_passenger/admin_tools/memory_stats.rb +267 -267
  75. data/lib/phusion_passenger/apache2/config_options.rb +182 -182
  76. data/lib/phusion_passenger/common_library.rb +479 -485
  77. data/lib/phusion_passenger/config/about_command.rb +161 -161
  78. data/lib/phusion_passenger/config/admin_command_command.rb +129 -129
  79. data/lib/phusion_passenger/config/agent_compiler.rb +121 -121
  80. data/lib/phusion_passenger/config/build_native_support_command.rb +43 -43
  81. data/lib/phusion_passenger/config/command.rb +25 -25
  82. data/lib/phusion_passenger/config/compile_agent_command.rb +62 -62
  83. data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +88 -73
  84. data/lib/phusion_passenger/config/detach_process_command.rb +72 -72
  85. data/lib/phusion_passenger/config/download_agent_command.rb +246 -227
  86. data/lib/phusion_passenger/config/download_nginx_engine_command.rb +245 -224
  87. data/lib/phusion_passenger/config/install_agent_command.rb +144 -132
  88. data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +205 -185
  89. data/lib/phusion_passenger/config/installation_utils.rb +204 -204
  90. data/lib/phusion_passenger/config/list_instances_command.rb +64 -64
  91. data/lib/phusion_passenger/config/main.rb +152 -152
  92. data/lib/phusion_passenger/config/nginx_engine_compiler.rb +319 -300
  93. data/lib/phusion_passenger/config/reopen_logs_command.rb +67 -67
  94. data/lib/phusion_passenger/config/restart_app_command.rb +155 -155
  95. data/lib/phusion_passenger/config/system_metrics_command.rb +13 -13
  96. data/lib/phusion_passenger/config/utils.rb +95 -95
  97. data/lib/phusion_passenger/config/validate_install_command.rb +198 -198
  98. data/lib/phusion_passenger/console_text_template.rb +25 -25
  99. data/lib/phusion_passenger/constants.rb +90 -90
  100. data/lib/phusion_passenger/debug_logging.rb +106 -106
  101. data/lib/phusion_passenger/loader_shared_helpers.rb +447 -432
  102. data/lib/phusion_passenger/message_channel.rb +312 -312
  103. data/lib/phusion_passenger/message_client.rb +176 -176
  104. data/lib/phusion_passenger/native_support.rb +369 -369
  105. data/lib/phusion_passenger/nginx/config_options.rb +297 -297
  106. data/lib/phusion_passenger/packaging.rb +131 -131
  107. data/lib/phusion_passenger/platform_info.rb +360 -360
  108. data/lib/phusion_passenger/platform_info/apache.rb +767 -767
  109. data/lib/phusion_passenger/platform_info/apache_detector.rb +199 -199
  110. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +107 -107
  111. data/lib/phusion_passenger/platform_info/compiler.rb +570 -570
  112. data/lib/phusion_passenger/platform_info/curl.rb +32 -32
  113. data/lib/phusion_passenger/platform_info/cxx_portability.rb +188 -188
  114. data/lib/phusion_passenger/platform_info/depcheck.rb +372 -372
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +109 -109
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -34
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +101 -101
  119. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -5
  120. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +13 -13
  121. data/lib/phusion_passenger/platform_info/linux.rb +55 -55
  122. data/lib/phusion_passenger/platform_info/operating_system.rb +149 -149
  123. data/lib/phusion_passenger/platform_info/ruby.rb +468 -448
  124. data/lib/phusion_passenger/platform_info/zlib.rb +9 -9
  125. data/lib/phusion_passenger/plugin.rb +66 -66
  126. data/lib/phusion_passenger/preloader_shared_helpers.rb +126 -126
  127. data/lib/phusion_passenger/public_api.rb +191 -191
  128. data/lib/phusion_passenger/rack/out_of_band_gc.rb +93 -94
  129. data/lib/phusion_passenger/rack/thread_handler_extension.rb +231 -227
  130. data/lib/phusion_passenger/request_handler.rb +567 -577
  131. data/lib/phusion_passenger/request_handler/thread_handler.rb +379 -381
  132. data/lib/phusion_passenger/ruby_core_enhancements.rb +86 -86
  133. data/lib/phusion_passenger/ruby_core_io_enhancements.rb +74 -74
  134. data/lib/phusion_passenger/simple_benchmarking.rb +25 -25
  135. data/lib/phusion_passenger/standalone/app_finder.rb +153 -150
  136. data/lib/phusion_passenger/standalone/command.rb +44 -40
  137. data/lib/phusion_passenger/standalone/config_utils.rb +53 -53
  138. data/lib/phusion_passenger/standalone/control_utils.rb +38 -59
  139. data/lib/phusion_passenger/standalone/main.rb +73 -73
  140. data/lib/phusion_passenger/standalone/start_command.rb +697 -685
  141. data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +193 -155
  142. data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +162 -133
  143. data/lib/phusion_passenger/standalone/status_command.rb +64 -64
  144. data/lib/phusion_passenger/standalone/stop_command.rb +72 -72
  145. data/lib/phusion_passenger/standalone/version_command.rb +9 -9
  146. data/lib/phusion_passenger/union_station/connection.rb +32 -32
  147. data/lib/phusion_passenger/union_station/core.rb +251 -251
  148. data/lib/phusion_passenger/union_station/transaction.rb +126 -126
  149. data/lib/phusion_passenger/utils.rb +199 -167
  150. data/lib/phusion_passenger/utils/ansi_colors.rb +128 -128
  151. data/lib/phusion_passenger/utils/download.rb +196 -196
  152. data/lib/phusion_passenger/utils/file_system_watcher.rb +158 -158
  153. data/lib/phusion_passenger/utils/hosts_file_parser.rb +101 -101
  154. data/lib/phusion_passenger/utils/lock.rb +31 -31
  155. data/lib/phusion_passenger/utils/native_support_utils.rb +31 -31
  156. data/lib/phusion_passenger/utils/progress_bar.rb +26 -26
  157. data/lib/phusion_passenger/utils/shellwords.rb +20 -20
  158. data/lib/phusion_passenger/utils/terminal_choice_menu.rb +206 -206
  159. data/lib/phusion_passenger/utils/unseekable_socket.rb +272 -272
  160. data/lib/phusion_passenger/vendor/crash_watch/app.rb +129 -0
  161. data/lib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +341 -0
  162. data/lib/phusion_passenger/vendor/crash_watch/version.rb +24 -0
  163. data/lib/phusion_passenger/vendor/daemon_controller.rb +877 -0
  164. data/lib/phusion_passenger/vendor/daemon_controller/lock_file.rb +127 -0
  165. data/lib/phusion_passenger/vendor/daemon_controller/spawn.rb +26 -0
  166. data/lib/phusion_passenger/vendor/daemon_controller/version.rb +29 -0
  167. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -1
  168. data/passenger.gemspec +0 -1
  169. data/resources/templates/config/nginx_engine_compiler/possible_solutions_for_download_and_extraction_problems.txt.erb +27 -0
  170. data/resources/templates/standalone/config.erb +19 -15
  171. data/test/integration_tests/apache2_tests.rb +566 -566
  172. data/test/integration_tests/downloaded_binaries_tests.rb +126 -125
  173. data/test/integration_tests/native_packaging_spec.rb +296 -296
  174. data/test/integration_tests/nginx_tests.rb +393 -393
  175. data/test/integration_tests/shared/example_webapp_tests.rb +282 -280
  176. data/test/integration_tests/source_packaging_test.rb +138 -138
  177. data/test/integration_tests/spec_helper.rb +5 -5
  178. data/test/integration_tests/standalone_tests.rb +367 -367
  179. data/test/ruby/debug_logging_spec.rb +133 -133
  180. data/test/ruby/message_channel_spec.rb +186 -186
  181. data/test/ruby/rack/loader_spec.rb +28 -28
  182. data/test/ruby/rack/preloader_spec.rb +34 -34
  183. data/test/ruby/rails3.0/loader_spec.rb +12 -12
  184. data/test/ruby/rails3.0/preloader_spec.rb +18 -18
  185. data/test/ruby/rails3.1/loader_spec.rb +12 -12
  186. data/test/ruby/rails3.1/preloader_spec.rb +18 -18
  187. data/test/ruby/rails3.2/loader_spec.rb +12 -12
  188. data/test/ruby/rails3.2/preloader_spec.rb +18 -18
  189. data/test/ruby/rails4.0/loader_spec.rb +12 -12
  190. data/test/ruby/rails4.0/preloader_spec.rb +18 -18
  191. data/test/ruby/rails4.1/loader_spec.rb +12 -12
  192. data/test/ruby/rails4.1/preloader_spec.rb +18 -18
  193. data/test/ruby/request_handler_spec.rb +730 -730
  194. data/test/ruby/shared/loader_sharedspec.rb +224 -224
  195. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +327 -327
  196. data/test/ruby/shared/ruby_loader_sharedspec.rb +47 -47
  197. data/test/ruby/spec_helper.rb +65 -65
  198. data/test/ruby/standalone/runtime_installer_spec.rb +384 -384
  199. data/test/ruby/union_station_spec.rb +276 -276
  200. data/test/ruby/utils/file_system_watcher_spec.rb +220 -220
  201. data/test/ruby/utils/hosts_file_parser.rb +248 -248
  202. data/test/ruby/utils/tee_input_spec.rb +215 -215
  203. data/test/ruby/utils/unseekable_socket_spec.rb +57 -57
  204. data/test/ruby/utils_spec.rb +21 -21
  205. data/test/stub/rack/config.ru +87 -87
  206. data/test/stub/rack/library.rb +8 -8
  207. data/test/stub/rack/start.rb +30 -30
  208. data/test/support/apache2_controller.rb +191 -191
  209. data/test/support/nginx_controller.rb +90 -99
  210. data/test/support/placebo-preloader.rb +57 -57
  211. data/test/support/test_helper.rb +435 -435
  212. metadata +11 -21
  213. metadata.gz.asc +7 -7
  214. data/lib/phusion_passenger/standalone/command2.rb +0 -292
  215. data/lib/phusion_passenger/standalone/start2_command.rb +0 -799
  216. data/resources/templates/standalone/download_tool_missing.txt.erb +0 -18
  217. data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -17
  218. data/resources/templates/standalone/run_installer_as_root.txt.erb +0 -8
@@ -85,304 +85,304 @@
85
85
 
86
86
 
87
87
  LOCATION_CONFIGURATION_OPTIONS = [
88
- {
89
- :name => 'passenger_enabled',
90
- :context => [:srv, :loc, :lif],
91
- :type => :flag,
92
- :function => 'passenger_enabled',
93
- :field => 'enabled',
94
- :header => nil
95
- },
96
- {
97
- :name => 'passenger_ruby',
98
- :context => [:srv, :loc, :lif],
99
- :type => :string
100
- },
101
- {
102
- :name => 'passenger_python',
103
- :type => :string
104
- },
105
- {
106
- :name => 'passenger_nodejs',
107
- :type => :string
108
- },
109
- {
110
- :name => 'passenger_app_env',
111
- :type => :string,
112
- :field => 'environment'
113
- },
114
- {
115
- :name => 'passenger_friendly_error_pages',
116
- :type => :flag
117
- },
118
- {
119
- :name => 'passenger_min_instances',
120
- :type => :integer,
121
- :header => 'PASSENGER_MIN_PROCESSES'
122
- },
123
- {
124
- :name => 'passenger_max_instances_per_app',
125
- :context => [:main],
126
- :type => :integer,
127
- :header => 'PASSENGER_MAX_PROCESSES'
128
- },
129
- {
130
- :name => 'passenger_max_requests',
131
- :type => :integer
132
- },
133
- {
134
- :name => 'passenger_start_timeout',
135
- :type => :integer
136
- },
137
- {
138
- :name => 'passenger_base_uri',
139
- :type => :string_array,
140
- :field => 'base_uris',
141
- :header => nil
142
- },
143
- {
144
- :name => 'passenger_document_root',
145
- :type => :string,
146
- :header => nil
147
- },
148
- {
149
- :name => 'passenger_user',
150
- :type => :string
151
- },
152
- {
153
- :name => 'passenger_group',
154
- :type => :string
155
- },
156
- {
157
- :name => 'passenger_app_group_name',
158
- :type => :string
159
- },
160
- {
161
- :name => 'passenger_app_root',
162
- :type => :string
163
- },
164
- {
165
- :name => 'passenger_app_rights',
166
- :type => :string
167
- },
168
- {
169
- :name => 'union_station_support',
170
- :type => :flag
171
- },
172
- {
173
- :name => 'union_station_filter',
174
- :take => 'NGX_CONF_TAKE1',
175
- :type => :string_array,
176
- :function => 'union_station_filter',
177
- :field => 'union_station_filters',
178
- :header => nil
179
- },
180
- {
181
- :name => 'passenger_debugger',
182
- :type => :flag
183
- },
184
- {
185
- :name => 'passenger_max_preloader_idle_time',
186
- :type => :integer
187
- },
188
- {
189
- :name => 'passenger_ignore_headers',
190
- :take => 'NGX_CONF_1MORE',
191
- :function => 'ngx_conf_set_bitmask_slot',
192
- :field => 'upstream_config.ignore_headers',
193
- :post => '&ngx_http_upstream_ignore_headers_masks'
194
- },
195
- {
196
- :name => 'passenger_env_var',
197
- :type => :string_keyval,
198
- :field => 'env_vars',
199
- :header => nil
200
- },
201
- {
202
- :name => 'passenger_set_header',
203
- :type => :string_keyval,
204
- :field => 'headers_source',
205
- :header => nil,
206
- :auto_generate_nginx_create_code => false,
207
- :auto_generate_nginx_merge_code => false
208
- },
209
- {
210
- :name => 'passenger_pass_header',
211
- :type => :string_array,
212
- :field => 'upstream_config.pass_headers'
213
- },
214
- {
215
- :name => 'passenger_headers_hash_max_size',
216
- :type => :uinteger,
217
- :header => nil,
218
- :default => 512
219
- },
220
- {
221
- :name => 'passenger_headers_hash_bucket_size',
222
- :type => :uinteger,
223
- :header => nil,
224
- :default => 64
225
- },
226
- {
227
- :name => 'passenger_ignore_client_abort',
228
- :type => :flag,
229
- :field => 'upstream_config.ignore_client_abort'
230
- },
231
- {
232
- :name => 'passenger_buffer_response',
233
- :type => :flag,
234
- :field => 'upstream_config.buffering'
235
- },
236
- {
237
- :name => 'passenger_buffer_size',
238
- :take => 'NGX_CONF_TAKE1',
239
- :function => 'ngx_conf_set_size_slot',
240
- :field => 'upstream_config.buffer_size'
241
- },
242
- {
243
- :name => 'passenger_buffers',
244
- :take => 'NGX_CONF_TAKE2',
245
- :function => 'ngx_conf_set_bufs_slot',
246
- :field => 'upstream_config.bufs'
247
- },
248
- {
249
- :name => 'passenger_busy_buffers_size',
250
- :take => 'NGX_CONF_TAKE1',
251
- :function => 'ngx_conf_set_size_slot',
252
- :field => 'upstream_config.busy_buffers_size_conf'
253
- },
254
- {
255
- :name => 'passenger_intercept_errors',
256
- :type => :flag,
257
- :field => 'upstream_config.intercept_errors'
258
- },
259
- {
260
- :name => 'passenger_spawn_method',
261
- :type => :string
262
- },
263
- {
264
- :name => 'passenger_load_shell_envvars',
265
- :type => :flag
266
- },
267
- {
268
- :name => 'union_station_key',
269
- :type => :string
270
- },
271
- {
272
- :name => 'passenger_max_request_queue_size',
273
- :type => :integer
274
- },
275
- {
276
- :name => 'passenger_request_queue_overflow_status_code',
277
- :type => :integer
278
- },
279
- {
280
- :name => 'passenger_restart_dir',
281
- :type => :string
282
- },
283
- {
284
- :name => 'passenger_app_type',
285
- :type => :string,
286
- :header => nil
287
- },
288
- {
289
- :name => 'passenger_startup_file',
290
- :type => :string
291
- },
292
- {
293
- :name => 'passenger_sticky_sessions',
294
- :type => :flag
295
- },
296
- {
297
- :name => 'passenger_sticky_sessions_cookie_name',
298
- :type => :string
299
- },
300
- {
301
- :name => 'passenger_vary_turbocache_by_cookie',
302
- :type => :string
303
- },
88
+ {
89
+ :name => 'passenger_enabled',
90
+ :context => [:srv, :loc, :lif],
91
+ :type => :flag,
92
+ :function => 'passenger_enabled',
93
+ :field => 'enabled',
94
+ :header => nil
95
+ },
96
+ {
97
+ :name => 'passenger_ruby',
98
+ :context => [:srv, :loc, :lif],
99
+ :type => :string
100
+ },
101
+ {
102
+ :name => 'passenger_python',
103
+ :type => :string
104
+ },
105
+ {
106
+ :name => 'passenger_nodejs',
107
+ :type => :string
108
+ },
109
+ {
110
+ :name => 'passenger_app_env',
111
+ :type => :string,
112
+ :field => 'environment'
113
+ },
114
+ {
115
+ :name => 'passenger_friendly_error_pages',
116
+ :type => :flag
117
+ },
118
+ {
119
+ :name => 'passenger_min_instances',
120
+ :type => :integer,
121
+ :header => 'PASSENGER_MIN_PROCESSES'
122
+ },
123
+ {
124
+ :name => 'passenger_max_instances_per_app',
125
+ :context => [:main],
126
+ :type => :integer,
127
+ :header => 'PASSENGER_MAX_PROCESSES'
128
+ },
129
+ {
130
+ :name => 'passenger_max_requests',
131
+ :type => :integer
132
+ },
133
+ {
134
+ :name => 'passenger_start_timeout',
135
+ :type => :integer
136
+ },
137
+ {
138
+ :name => 'passenger_base_uri',
139
+ :type => :string_array,
140
+ :field => 'base_uris',
141
+ :header => nil
142
+ },
143
+ {
144
+ :name => 'passenger_document_root',
145
+ :type => :string,
146
+ :header => nil
147
+ },
148
+ {
149
+ :name => 'passenger_user',
150
+ :type => :string
151
+ },
152
+ {
153
+ :name => 'passenger_group',
154
+ :type => :string
155
+ },
156
+ {
157
+ :name => 'passenger_app_group_name',
158
+ :type => :string
159
+ },
160
+ {
161
+ :name => 'passenger_app_root',
162
+ :type => :string
163
+ },
164
+ {
165
+ :name => 'passenger_app_rights',
166
+ :type => :string
167
+ },
168
+ {
169
+ :name => 'union_station_support',
170
+ :type => :flag
171
+ },
172
+ {
173
+ :name => 'union_station_filter',
174
+ :take => 'NGX_CONF_TAKE1',
175
+ :type => :string_array,
176
+ :function => 'union_station_filter',
177
+ :field => 'union_station_filters',
178
+ :header => nil
179
+ },
180
+ {
181
+ :name => 'passenger_debugger',
182
+ :type => :flag
183
+ },
184
+ {
185
+ :name => 'passenger_max_preloader_idle_time',
186
+ :type => :integer
187
+ },
188
+ {
189
+ :name => 'passenger_ignore_headers',
190
+ :take => 'NGX_CONF_1MORE',
191
+ :function => 'ngx_conf_set_bitmask_slot',
192
+ :field => 'upstream_config.ignore_headers',
193
+ :post => '&ngx_http_upstream_ignore_headers_masks'
194
+ },
195
+ {
196
+ :name => 'passenger_env_var',
197
+ :type => :string_keyval,
198
+ :field => 'env_vars',
199
+ :header => nil
200
+ },
201
+ {
202
+ :name => 'passenger_set_header',
203
+ :type => :string_keyval,
204
+ :field => 'headers_source',
205
+ :header => nil,
206
+ :auto_generate_nginx_create_code => false,
207
+ :auto_generate_nginx_merge_code => false
208
+ },
209
+ {
210
+ :name => 'passenger_pass_header',
211
+ :type => :string_array,
212
+ :field => 'upstream_config.pass_headers'
213
+ },
214
+ {
215
+ :name => 'passenger_headers_hash_max_size',
216
+ :type => :uinteger,
217
+ :header => nil,
218
+ :default => 512
219
+ },
220
+ {
221
+ :name => 'passenger_headers_hash_bucket_size',
222
+ :type => :uinteger,
223
+ :header => nil,
224
+ :default => 64
225
+ },
226
+ {
227
+ :name => 'passenger_ignore_client_abort',
228
+ :type => :flag,
229
+ :field => 'upstream_config.ignore_client_abort'
230
+ },
231
+ {
232
+ :name => 'passenger_buffer_response',
233
+ :type => :flag,
234
+ :field => 'upstream_config.buffering'
235
+ },
236
+ {
237
+ :name => 'passenger_buffer_size',
238
+ :take => 'NGX_CONF_TAKE1',
239
+ :function => 'ngx_conf_set_size_slot',
240
+ :field => 'upstream_config.buffer_size'
241
+ },
242
+ {
243
+ :name => 'passenger_buffers',
244
+ :take => 'NGX_CONF_TAKE2',
245
+ :function => 'ngx_conf_set_bufs_slot',
246
+ :field => 'upstream_config.bufs'
247
+ },
248
+ {
249
+ :name => 'passenger_busy_buffers_size',
250
+ :take => 'NGX_CONF_TAKE1',
251
+ :function => 'ngx_conf_set_size_slot',
252
+ :field => 'upstream_config.busy_buffers_size_conf'
253
+ },
254
+ {
255
+ :name => 'passenger_intercept_errors',
256
+ :type => :flag,
257
+ :field => 'upstream_config.intercept_errors'
258
+ },
259
+ {
260
+ :name => 'passenger_spawn_method',
261
+ :type => :string
262
+ },
263
+ {
264
+ :name => 'passenger_load_shell_envvars',
265
+ :type => :flag
266
+ },
267
+ {
268
+ :name => 'union_station_key',
269
+ :type => :string
270
+ },
271
+ {
272
+ :name => 'passenger_max_request_queue_size',
273
+ :type => :integer
274
+ },
275
+ {
276
+ :name => 'passenger_request_queue_overflow_status_code',
277
+ :type => :integer
278
+ },
279
+ {
280
+ :name => 'passenger_restart_dir',
281
+ :type => :string
282
+ },
283
+ {
284
+ :name => 'passenger_app_type',
285
+ :type => :string,
286
+ :header => nil
287
+ },
288
+ {
289
+ :name => 'passenger_startup_file',
290
+ :type => :string
291
+ },
292
+ {
293
+ :name => 'passenger_sticky_sessions',
294
+ :type => :flag
295
+ },
296
+ {
297
+ :name => 'passenger_sticky_sessions_cookie_name',
298
+ :type => :string
299
+ },
300
+ {
301
+ :name => 'passenger_vary_turbocache_by_cookie',
302
+ :type => :string
303
+ },
304
304
 
305
- ###### Enterprise features ######
306
- {
307
- :context => [:main],
308
- :name => 'passenger_fly_with',
309
- :type => :string,
310
- :struct => "NGX_HTTP_MAIN_CONF_OFFSET",
311
- :function => 'passenger_enterprise_only',
312
- :field => nil
313
- },
314
- {
315
- :name => 'passenger_max_instances',
316
- :type => :integer,
317
- :function => 'passenger_enterprise_only',
318
- :field => nil
319
- },
320
- {
321
- :name => 'passenger_max_request_time',
322
- :type => :integer,
323
- :function => 'passenger_enterprise_only',
324
- :field => nil
325
- },
326
- {
327
- :name => 'passenger_memory_limit',
328
- :type => :integer,
329
- :function => 'passenger_enterprise_only',
330
- :field => nil
331
- },
332
- {
333
- :name => 'passenger_concurrency_model',
334
- :type => :string,
335
- :function => 'passenger_enterprise_only',
336
- :field => nil
337
- },
338
- {
339
- :name => 'passenger_thread_count',
340
- :type => :integer,
341
- :function => 'passenger_enterprise_only',
342
- :field => nil
343
- },
344
- {
345
- :name => 'passenger_rolling_restarts',
346
- :type => :flag,
347
- :function => 'passenger_enterprise_only',
348
- :field => nil
349
- },
350
- {
351
- :name => 'passenger_resist_deployment_errors',
352
- :type => :flag,
353
- :function => 'passenger_enterprise_only',
354
- :field => nil
355
- },
305
+ ###### Enterprise features ######
306
+ {
307
+ :context => [:main],
308
+ :name => 'passenger_fly_with',
309
+ :type => :string,
310
+ :struct => "NGX_HTTP_MAIN_CONF_OFFSET",
311
+ :function => 'passenger_enterprise_only',
312
+ :field => nil
313
+ },
314
+ {
315
+ :name => 'passenger_max_instances',
316
+ :type => :integer,
317
+ :function => 'passenger_enterprise_only',
318
+ :field => nil
319
+ },
320
+ {
321
+ :name => 'passenger_max_request_time',
322
+ :type => :integer,
323
+ :function => 'passenger_enterprise_only',
324
+ :field => nil
325
+ },
326
+ {
327
+ :name => 'passenger_memory_limit',
328
+ :type => :integer,
329
+ :function => 'passenger_enterprise_only',
330
+ :field => nil
331
+ },
332
+ {
333
+ :name => 'passenger_concurrency_model',
334
+ :type => :string,
335
+ :function => 'passenger_enterprise_only',
336
+ :field => nil
337
+ },
338
+ {
339
+ :name => 'passenger_thread_count',
340
+ :type => :integer,
341
+ :function => 'passenger_enterprise_only',
342
+ :field => nil
343
+ },
344
+ {
345
+ :name => 'passenger_rolling_restarts',
346
+ :type => :flag,
347
+ :function => 'passenger_enterprise_only',
348
+ :field => nil
349
+ },
350
+ {
351
+ :name => 'passenger_resist_deployment_errors',
352
+ :type => :flag,
353
+ :function => 'passenger_enterprise_only',
354
+ :field => nil
355
+ },
356
356
 
357
- ###### Aliases for backwards compatibility ######
358
- {
359
- :name => 'rails_spawn_method',
360
- :alias_for => 'passenger_spawn_method'
361
- },
362
- {
363
- :name => 'rails_env',
364
- :alias_for => 'passenger_app_env'
365
- },
366
- {
367
- :name => 'rack_env',
368
- :alias_for => 'passenger_app_env'
369
- },
370
- {
371
- :name => 'rails_app_spawner_idle_time',
372
- :alias_for => 'passenger_max_preloader_idle_time'
373
- },
357
+ ###### Aliases for backwards compatibility ######
358
+ {
359
+ :name => 'rails_spawn_method',
360
+ :alias_for => 'passenger_spawn_method'
361
+ },
362
+ {
363
+ :name => 'rails_env',
364
+ :alias_for => 'passenger_app_env'
365
+ },
366
+ {
367
+ :name => 'rack_env',
368
+ :alias_for => 'passenger_app_env'
369
+ },
370
+ {
371
+ :name => 'rails_app_spawner_idle_time',
372
+ :alias_for => 'passenger_max_preloader_idle_time'
373
+ },
374
374
 
375
- ###### Obsolete options ######
376
- {
377
- :name => 'rails_framework_spawner_idle_time',
378
- :take => 'NGX_CONF_TAKE1',
379
- :function => 'rails_framework_spawner_idle_time',
380
- :field => nil
381
- },
382
- {
383
- :name => 'passenger_use_global_queue',
384
- :take => 'NGX_CONF_FLAG',
385
- :function => 'passenger_use_global_queue',
386
- :field => nil
387
- }
375
+ ###### Obsolete options ######
376
+ {
377
+ :name => 'rails_framework_spawner_idle_time',
378
+ :take => 'NGX_CONF_TAKE1',
379
+ :function => 'rails_framework_spawner_idle_time',
380
+ :field => nil
381
+ },
382
+ {
383
+ :name => 'passenger_use_global_queue',
384
+ :take => 'NGX_CONF_FLAG',
385
+ :function => 'passenger_use_global_queue',
386
+ :field => nil
387
+ }
388
388
  ]