passenger 4.0.27 → 4.0.28

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 (156) hide show
  1. data.tar.gz.asc +7 -7
  2. data/.gitignore +1 -0
  3. data/NEWS +22 -0
  4. data/build/preprocessor.rb +10 -0
  5. data/build/rpm.rb +74 -65
  6. data/debian.template/rules.template +8 -0
  7. data/dev/copy_boost_headers.rb +11 -2
  8. data/doc/Users guide Apache.idmap.txt +161 -145
  9. data/doc/Users guide Apache.txt +12 -1
  10. data/doc/Users guide Nginx.idmap.txt +142 -126
  11. data/doc/Users guide Nginx.txt +14 -1
  12. data/doc/Users guide Standalone.txt +1 -0
  13. data/doc/users_guide_snippets/environment_variables.txt +1 -1
  14. data/doc/users_guide_snippets/installation.txt +2 -0
  15. data/doc/users_guide_snippets/tips.txt +118 -0
  16. data/ext/apache2/Configuration.cpp +0 -6
  17. data/ext/apache2/Configuration.hpp +0 -5
  18. data/ext/apache2/ConfigurationCommands.cpp +7 -0
  19. data/ext/apache2/ConfigurationFields.hpp +2 -0
  20. data/ext/apache2/ConfigurationSetters.cpp +24 -0
  21. data/ext/apache2/CreateDirConfig.cpp +1 -0
  22. data/ext/apache2/Hooks.cpp +0 -1
  23. data/ext/apache2/MergeDirConfig.cpp +7 -0
  24. data/ext/apache2/SetHeaders.cpp +5 -1
  25. data/ext/boost/cregex.hpp +39 -0
  26. data/ext/boost/libs/regex/src/c_regex_traits.cpp +193 -0
  27. data/ext/boost/libs/regex/src/cpp_regex_traits.cpp +117 -0
  28. data/ext/boost/libs/regex/src/cregex.cpp +660 -0
  29. data/ext/boost/libs/regex/src/instances.cpp +32 -0
  30. data/ext/boost/libs/regex/src/internals.hpp +35 -0
  31. data/ext/boost/libs/regex/src/posix_api.cpp +296 -0
  32. data/ext/boost/libs/regex/src/regex.cpp +227 -0
  33. data/ext/boost/libs/regex/src/regex_debug.cpp +59 -0
  34. data/ext/boost/libs/regex/src/regex_raw_buffer.cpp +72 -0
  35. data/ext/boost/libs/regex/src/regex_traits_defaults.cpp +692 -0
  36. data/ext/boost/libs/regex/src/static_mutex.cpp +179 -0
  37. data/ext/boost/libs/regex/src/wc_regex_traits.cpp +301 -0
  38. data/ext/boost/libs/regex/src/wide_posix_api.cpp +315 -0
  39. data/ext/boost/libs/regex/src/winstances.cpp +35 -0
  40. data/ext/boost/regex.h +100 -0
  41. data/ext/boost/regex.hpp +37 -0
  42. data/ext/boost/regex/concepts.hpp +1128 -0
  43. data/ext/boost/regex/config.hpp +435 -0
  44. data/ext/boost/regex/config/borland.hpp +72 -0
  45. data/ext/boost/regex/config/cwchar.hpp +207 -0
  46. data/ext/boost/regex/mfc.hpp +190 -0
  47. data/ext/boost/regex/pattern_except.hpp +100 -0
  48. data/ext/boost/regex/pending/object_cache.hpp +165 -0
  49. data/ext/boost/regex/pending/static_mutex.hpp +179 -0
  50. data/ext/boost/regex/pending/unicode_iterator.hpp +776 -0
  51. data/ext/boost/regex/regex_traits.hpp +35 -0
  52. data/ext/boost/regex/user.hpp +93 -0
  53. data/ext/boost/regex/v4/basic_regex.hpp +782 -0
  54. data/ext/boost/regex/v4/basic_regex_creator.hpp +1571 -0
  55. data/ext/boost/regex/v4/basic_regex_parser.hpp +2874 -0
  56. data/ext/boost/regex/v4/c_regex_traits.hpp +211 -0
  57. data/ext/boost/regex/v4/char_regex_traits.hpp +81 -0
  58. data/ext/boost/regex/v4/cpp_regex_traits.hpp +1099 -0
  59. data/ext/boost/regex/v4/cregex.hpp +330 -0
  60. data/ext/boost/regex/v4/error_type.hpp +59 -0
  61. data/ext/boost/regex/v4/fileiter.hpp +455 -0
  62. data/ext/boost/regex/v4/instances.hpp +222 -0
  63. data/ext/boost/regex/v4/iterator_category.hpp +91 -0
  64. data/ext/boost/regex/v4/iterator_traits.hpp +135 -0
  65. data/ext/boost/regex/v4/match_flags.hpp +138 -0
  66. data/ext/boost/regex/v4/match_results.hpp +702 -0
  67. data/ext/boost/regex/v4/mem_block_cache.hpp +99 -0
  68. data/ext/boost/regex/v4/perl_matcher.hpp +587 -0
  69. data/ext/boost/regex/v4/perl_matcher_common.hpp +996 -0
  70. data/ext/boost/regex/v4/perl_matcher_non_recursive.hpp +1642 -0
  71. data/ext/boost/regex/v4/perl_matcher_recursive.hpp +991 -0
  72. data/ext/boost/regex/v4/primary_transform.hpp +146 -0
  73. data/ext/boost/regex/v4/protected_call.hpp +81 -0
  74. data/ext/boost/regex/v4/regbase.hpp +180 -0
  75. data/ext/boost/regex/v4/regex.hpp +202 -0
  76. data/ext/boost/regex/v4/regex_format.hpp +1156 -0
  77. data/ext/boost/regex/v4/regex_fwd.hpp +73 -0
  78. data/ext/boost/regex/v4/regex_grep.hpp +155 -0
  79. data/ext/boost/regex/v4/regex_iterator.hpp +201 -0
  80. data/ext/boost/regex/v4/regex_match.hpp +382 -0
  81. data/ext/boost/regex/v4/regex_merge.hpp +93 -0
  82. data/ext/boost/regex/v4/regex_raw_buffer.hpp +210 -0
  83. data/ext/boost/regex/v4/regex_replace.hpp +99 -0
  84. data/ext/boost/regex/v4/regex_search.hpp +217 -0
  85. data/ext/boost/regex/v4/regex_split.hpp +172 -0
  86. data/ext/boost/regex/v4/regex_token_iterator.hpp +342 -0
  87. data/ext/boost/regex/v4/regex_traits.hpp +189 -0
  88. data/ext/boost/regex/v4/regex_traits_defaults.hpp +371 -0
  89. data/ext/boost/regex/v4/regex_workaround.hpp +232 -0
  90. data/ext/boost/regex/v4/states.hpp +301 -0
  91. data/ext/boost/regex/v4/sub_match.hpp +512 -0
  92. data/ext/boost/regex/v4/syntax_type.hpp +105 -0
  93. data/ext/boost/regex/v4/u32regex_iterator.hpp +193 -0
  94. data/ext/boost/regex/v4/u32regex_token_iterator.hpp +377 -0
  95. data/ext/boost/regex/v4/w32_regex_traits.hpp +741 -0
  96. data/ext/boost/regex_fwd.hpp +33 -0
  97. data/ext/common/AgentsStarter.h +0 -11
  98. data/ext/common/ApplicationPool2/Common.h +1 -7
  99. data/ext/common/ApplicationPool2/DirectSpawner.h +3 -3
  100. data/ext/common/ApplicationPool2/Group.h +166 -69
  101. data/ext/common/ApplicationPool2/Implementation.cpp +55 -10
  102. data/ext/common/ApplicationPool2/Options.h +45 -10
  103. data/ext/common/ApplicationPool2/PipeWatcher.h +1 -2
  104. data/ext/common/ApplicationPool2/Pool.h +29 -7
  105. data/ext/common/ApplicationPool2/Process.h +22 -3
  106. data/ext/common/ApplicationPool2/Session.h +1 -0
  107. data/ext/common/ApplicationPool2/SmartSpawner.h +5 -10
  108. data/ext/common/ApplicationPool2/Spawner.h +10 -15
  109. data/ext/common/ApplicationPool2/SuperGroup.h +10 -9
  110. data/ext/common/Constants.h +1 -3
  111. data/ext/common/Hooks.h +193 -0
  112. data/ext/common/Logging.cpp +67 -2
  113. data/ext/common/Logging.h +23 -1
  114. data/ext/common/Utils.cpp +0 -21
  115. data/ext/common/Utils.h +0 -42
  116. data/ext/common/Utils/CachedFileStat.hpp +1 -1
  117. data/ext/common/Utils/StrIntUtils.h +61 -14
  118. data/ext/common/Utils/StringMap.h +4 -0
  119. data/ext/common/agents/HelperAgent/AgentOptions.h +4 -4
  120. data/ext/common/agents/HelperAgent/Main.cpp +2 -3
  121. data/ext/common/agents/HelperAgent/RequestHandler.h +65 -2
  122. data/ext/common/agents/LoggingAgent/FilterSupport.h +3 -1
  123. data/ext/common/agents/Watchdog/Main.cpp +8 -72
  124. data/ext/nginx/CacheLocationConfig.c +29 -1
  125. data/ext/nginx/Configuration.c +0 -12
  126. data/ext/nginx/Configuration.h +0 -1
  127. data/ext/nginx/ConfigurationCommands.c +10 -0
  128. data/ext/nginx/ConfigurationFields.h +2 -0
  129. data/ext/nginx/CreateLocationConfig.c +4 -0
  130. data/ext/nginx/MergeLocationConfig.c +6 -0
  131. data/ext/oxt/system_calls.cpp +7 -1
  132. data/ext/oxt/system_calls.hpp +7 -7
  133. data/helper-scripts/node-loader.js +6 -2
  134. data/helper-scripts/rack-loader.rb +5 -2
  135. data/helper-scripts/rack-preloader.rb +5 -2
  136. data/lib/phusion_passenger.rb +1 -1
  137. data/lib/phusion_passenger/apache2/config_options.rb +8 -0
  138. data/lib/phusion_passenger/constants.rb +0 -1
  139. data/lib/phusion_passenger/nginx/config_options.rb +9 -2
  140. data/lib/phusion_passenger/platform_info/apache.rb +2 -1
  141. data/lib/phusion_passenger/platform_info/compiler.rb +15 -1
  142. data/lib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
  143. data/node_lib/phusion_passenger/httplib_emulation.js +85 -17
  144. data/node_lib/phusion_passenger/request_handler.js +10 -2
  145. data/rpm/Vagrantfile +32 -0
  146. data/rpm/get_distro_id.py +4 -0
  147. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +2 -2
  148. data/test/cxx/ApplicationPool2/PoolTest.cpp +60 -9
  149. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +2 -6
  150. data/test/cxx/CachedFileStatTest.cpp +5 -5
  151. data/test/cxx/RequestHandlerTest.cpp +3 -6
  152. data/test/cxx/UtilsTest.cpp +30 -0
  153. data/test/node/httplib_emulation_spec.js +491 -0
  154. data/test/node/spec_helper.js +25 -0
  155. metadata +78 -2
  156. metadata.gz.asc +7 -7
@@ -506,6 +506,15 @@ command line:
506
506
  touch /webapps/wsgiapp/tmp/restart.txt
507
507
  -------------------------------------------
508
508
 
509
+ == Deploying a Node.js application
510
+
511
+ Please refer to link:https://github.com/phusion/passenger/wiki/Phusion-Passenger%3A-Node.js-tutorial[the Node.js tutorial].
512
+
513
+
514
+ == Deploying a Meteor application
515
+
516
+ Please refer to link:http://blog.phusion.nl/2013/11/01/will-meteor-kill-rails-i-dont-know-but-phusion-passenger-open-sources-meteor-support/[the Meteor tutorial].
517
+
509
518
 
510
519
  == Configuring Phusion Passenger ==
511
520
 
@@ -1801,7 +1810,9 @@ When all application processes are already handling their maximum number of conc
1801
1810
 
1802
1811
  A value of 0 means that the queue is unbounded.
1803
1812
 
1804
- You may combine this with <<PassengerErrorOverride,PassengerErrorOverride>> and `ErrorDocument` to set a custom error page whenever the queue is full. In the following example, Apache will serve /error503.html whenever the queue is full:
1813
+ link:http://stackoverflow.com/questions/20402801/what-is-optimal-value-for-phusion-passenger-passengermaxrequestqueuesize[This article on StackOverflow] explains how the request queue works, what it means for the queue to grow or become full, why that is bad, and what you can do about it.
1814
+
1815
+ You may combine this option with <<PassengerErrorOverride,PassengerErrorOverride>> and `ErrorDocument` to set a custom error page whenever the queue is full. In the following example, Apache will serve /error503.html whenever the queue is full:
1805
1816
 
1806
1817
  ---------------------------------
1807
1818
  PassengerErrorOverride on
@@ -120,255 +120,271 @@
120
120
 
121
121
  5.4. Redeploying (restarting the WSGI application) => redeploying-restarting-the-wsgi-application--10zdh2k
122
122
 
123
- 6. Configuring Phusion Passenger => configuring-phusion-passenger-1g1svey
123
+ 6. Deploying a Node.js application => deploying-a-node-js-application-15wbczd
124
124
 
125
- 6.1. passenger_root <directory> => passenger-root-directory--bqvhhz
125
+ 7. Deploying a Meteor application => deploying-a-meteor-application-1b51wl9
126
126
 
127
- 6.2. Deployment options => deployment-options-1a1vxsp
127
+ 8. Configuring Phusion Passenger => configuring-phusion-passenger-1g1svey
128
128
 
129
- 6.2.1. passenger_enabled <on|off> => passenger-enabled-on-off--1rpb2t7
129
+ 8.1. passenger_root <directory> => passenger-root-directory--bqvhhz
130
130
 
131
- 6.2.2. passenger_ruby <filename> => passenger-ruby-filename--1gnok5k
131
+ 8.2. Deployment options => deployment-options-1a1vxsp
132
132
 
133
- 6.2.3. passenger_python <filename> => passenger-python-filename--14p554
133
+ 8.2.1. passenger_enabled <on|off> => passenger-enabled-on-off--1rpb2t7
134
134
 
135
- 6.2.4. passenger_nodejs <filename> => passenger-nodejs-filename--16hzjsv
135
+ 8.2.2. passenger_ruby <filename> => passenger-ruby-filename--1gnok5k
136
136
 
137
- 6.2.5. passenger_app_env <string> => passenger-app-env-string--qjeimp
137
+ 8.2.3. passenger_python <filename> => passenger-python-filename--14p554
138
138
 
139
- 6.2.6. rails_env <string> => rails-env-string--jlh7v9
139
+ 8.2.4. passenger_nodejs <filename> => passenger-nodejs-filename--16hzjsv
140
140
 
141
- 6.2.7. rack_env <string> => rack-env-string--tqmrt0
141
+ 8.2.5. passenger_app_env <string> => passenger-app-env-string--qjeimp
142
142
 
143
- 6.2.8. passenger_app_root <path/to/root> => passenger-app-root-path-to-root--1dbudc6
143
+ 8.2.6. rails_env <string> => rails-env-string--jlh7v9
144
144
 
145
- 6.2.9. passenger_base_uri <uri> => passenger-base-uri-uri--1xtuo50
145
+ 8.2.7. rack_env <string> => rack-env-string--tqmrt0
146
146
 
147
- 6.2.10. passenger_spawn_method <string> => passenger-spawn-method-string--1sc6njl
147
+ 8.2.8. passenger_app_root <path/to/root> => passenger-app-root-path-to-root--1dbudc6
148
148
 
149
- 6.2.11. passenger_load_shell_envvars <on|off> => passenger-load-shell-envvars-on-off--fw5u4l
149
+ 8.2.9. passenger_base_uri <uri> => passenger-base-uri-uri--1xtuo50
150
150
 
151
- 6.2.12. passenger_rolling_restarts <on|off> => passenger-rolling-restarts
151
+ 8.2.10. passenger_spawn_method <string> => passenger-spawn-method-string--1sc6njl
152
152
 
153
- 6.2.13. passenger_resist_deployment_errors <on|off> => passenger-resist-deployment-errors-on-off--k9yf1
153
+ 8.2.11. passenger_load_shell_envvars <on|off> => passenger-load-shell-envvars-on-off--fw5u4l
154
154
 
155
- 6.3. Connection handling options => connection-handling-options-8jgq90
155
+ 8.2.12. passenger_rolling_restarts <on|off> => passenger-rolling-restarts
156
156
 
157
- 6.3.1. passenger_ignore_client_abort <on|off> => passenger-ignore-client-abort
157
+ 8.2.13. passenger_resist_deployment_errors <on|off> => passenger-resist-deployment-errors-on-off--k9yf1
158
158
 
159
- 6.3.2. passenger_set_cgi_param <CGI environment name> <value> => passenger-set-cgi-param-cgi-environment-name-value--rx9gc0
159
+ 8.3. Connection handling options => connection-handling-options-8jgq90
160
160
 
161
- 6.3.3. passenger_pass_header <header name> => passenger-pass-header-header-name--1cg31je
161
+ 8.3.1. passenger_ignore_client_abort <on|off> => passenger-ignore-client-abort
162
162
 
163
- 6.3.4. passenger_buffer_response <on|off> => passenger-buffer-response
163
+ 8.3.2. passenger_set_cgi_param <CGI environment name> <value> => passenger-set-cgi-param-cgi-environment-name-value--rx9gc0
164
164
 
165
- 6.3.5. passenger_buffer_size => passenger-buffer-size-1jfkq87
165
+ 8.3.3. passenger_pass_header <header name> => passenger-pass-header-header-name--1cg31je
166
166
 
167
- 6.3.6. passenger_buffers => passenger-busy-buffers
167
+ 8.3.4. passenger_buffer_response <on|off> => passenger-buffer-response
168
168
 
169
- 6.3.7. passenger_busy_buffer_size => passenger-busy-buffer-size-124sj61
169
+ 8.3.5. passenger_buffer_size => passenger-buffer-size-1jfkq87
170
170
 
171
- 6.3.8. passenger_intercept_errors <on|off> => passenger-intercept-errors-1uvcb9x
171
+ 8.3.6. passenger_buffers => passenger-busy-buffers
172
172
 
173
- 6.3.9. passenger_max_request_queue_size <number> => passenger-max-request-queue-size-number--i0te1b
173
+ 8.3.7. passenger_busy_buffer_size => passenger-busy-buffer-size-124sj61
174
174
 
175
- 6.3.10. passenger_request_queue_overflow_status_code <code> => passenger-request-queue-overflow-status-code-code--1wcwuxl
175
+ 8.3.8. passenger_intercept_errors <on|off> => passenger-intercept-errors-1uvcb9x
176
176
 
177
- 6.4. Security options => security-options-1bv93g4
177
+ 8.3.9. passenger_max_request_queue_size <number> => passenger-max-request-queue-size-number--i0te1b
178
178
 
179
- 6.4.1. passenger_user_switching <on|off> => passenger-user-switching-on-off--1p37u3l
179
+ 8.3.10. passenger_request_queue_overflow_status_code <code> => passenger-request-queue-overflow-status-code-code--1wcwuxl
180
180
 
181
- 6.4.2. passenger_user <username> => passenger-user-username--b06ur7
181
+ 8.4. Security options => security-options-1bv93g4
182
182
 
183
- 6.4.3. passenger_group <group name> => passenger-user-group-name--1fco4j7
183
+ 8.4.1. passenger_user_switching <on|off> => passenger-user-switching-on-off--1p37u3l
184
184
 
185
- 6.4.4. passenger_default_user <username> => passenger-default-user-username--1h6cdmf
185
+ 8.4.2. passenger_user <username> => passenger-user-username--b06ur7
186
186
 
187
- 6.4.5. Passenger_default_group <group name> => passenger-default-group-group-name--1qxn2qa
187
+ 8.4.3. passenger_group <group name> => passenger-user-group-name--1fco4j7
188
188
 
189
- 6.4.6. passenger_show_version_in_header <on|off> => passenger-show-version-in-header-on-off--2h49av
189
+ 8.4.4. passenger_default_user <username> => passenger-default-user-username--1h6cdmf
190
190
 
191
- 6.4.7. passenger_friendly_error_pages <on|off> => passenger-friendly-error-pages-on-off--1ti1a0e
191
+ 8.4.5. Passenger_default_group <group name> => passenger-default-group-group-name--1qxn2qa
192
192
 
193
- 6.5. Resource control and optimization options => resource-control-and-optimization-options-xd7evs
193
+ 8.4.6. passenger_show_version_in_header <on|off> => passenger-show-version-in-header-on-off--2h49av
194
194
 
195
- 6.5.1. passenger_max_pool_size <integer> => passenger-max-pool-size-integer--3jzefs
195
+ 8.4.7. passenger_friendly_error_pages <on|off> => passenger-friendly-error-pages-on-off--1ti1a0e
196
196
 
197
- 6.5.2. passenger_min_instances <integer> => passenger-min-instances-integer--uclykt
197
+ 8.5. Resource control and optimization options => resource-control-and-optimization-options-xd7evs
198
198
 
199
- 6.5.3. passenger_max_instances <integer> => passenger-max-instances
199
+ 8.5.1. passenger_max_pool_size <integer> => passenger-max-pool-size-integer--3jzefs
200
200
 
201
- 6.5.4. passenger_max_instances_per_app <integer> => passenger-max-instances-per-app-integer--1xhbbne
201
+ 8.5.2. passenger_min_instances <integer> => passenger-min-instances-integer--uclykt
202
202
 
203
- 6.5.5. passenger_pool_idle_time <integer> => passenger-pool-idle-time-integer--xcw65o
203
+ 8.5.3. passenger_max_instances <integer> => passenger-max-instances
204
204
 
205
- 6.5.6. passenger_max_preloader_idle_time <integer> => rails-app-spawner-idle-time-integer--1xjqe4b
205
+ 8.5.4. passenger_max_instances_per_app <integer> => passenger-max-instances-per-app-integer--1xhbbne
206
206
 
207
- 6.5.7. passenger_start_timeout <seconds> => passenger-start-timeout-seconds--8xn504
207
+ 8.5.5. passenger_pool_idle_time <integer> => passenger-pool-idle-time-integer--xcw65o
208
208
 
209
- 6.5.8. passenger_concurrency_model <process|thread> => passenger-concurrency-model-process-thread--brcvkk
209
+ 8.5.6. passenger_max_preloader_idle_time <integer> => rails-app-spawner-idle-time-integer--1xjqe4b
210
210
 
211
- 6.5.9. passenger_thread_count <number> => passenger-thread-count-number--1kd6ffy
211
+ 8.5.7. passenger_start_timeout <seconds> => passenger-start-timeout-seconds--8xn504
212
212
 
213
- 6.5.10. passenger_max_requests <integer> => passenger-max-requests-integer--sgzint
213
+ 8.5.8. passenger_concurrency_model <process|thread> => passenger-concurrency-model-process-thread--brcvkk
214
214
 
215
- 6.5.11. passenger_max_request_time <seconds> => passenger-max-request-time-seconds--1htog2g
215
+ 8.5.9. passenger_thread_count <number> => passenger-thread-count-number--1kd6ffy
216
216
 
217
- 6.5.12. passenger_memory_limit <integer> => passenger-memory-limit-integer--1ry7dwx
217
+ 8.5.10. passenger_max_requests <integer> => passenger-max-requests-integer--sgzint
218
218
 
219
- 6.5.13. passenger_pre_start <url> => passenger-pre-start-url--npldeb
219
+ 8.5.11. passenger_max_request_time <seconds> => passenger-max-request-time-seconds--1htog2g
220
220
 
221
- 6.6. Logging and debugging options => logging-and-debugging-options-14e91ni
221
+ 8.5.12. passenger_memory_limit <integer> => passenger-memory-limit-integer--1ry7dwx
222
222
 
223
- 6.6.1. passenger_log_level <integer> => passenger-log-level-integer--17snhon
223
+ 8.5.13. passenger_pre_start <url> => passenger-pre-start-url--npldeb
224
224
 
225
- 6.6.2. passenger_debug_log_file <filename> => passenger-debug-log-file-filename--21ubaj
225
+ 8.6. Logging and debugging options => logging-and-debugging-options-14e91ni
226
226
 
227
- 6.6.3. passenger_debugger <on|off> => passenger-debugger-on-off--1wkuq85
227
+ 8.6.1. passenger_log_level <integer> => passenger-log-level-integer--17snhon
228
228
 
229
- 6.7. Advanced options => advanced-options-hnuhqz
229
+ 8.6.2. passenger_debug_log_file <filename> => passenger-debug-log-file-filename--21ubaj
230
230
 
231
- 6.7.1. passenger_temp_dir <directory> => passenger-temp-dir-directory--1t3opri
231
+ 8.6.3. passenger_debugger <on|off> => passenger-debugger-on-off--1wkuq85
232
232
 
233
- 6.7.2. passenger_fly_with <socket filename> => passenger-fly-with-socket-filename--1amd1xn
233
+ 8.7. Advanced options => advanced-options-hnuhqz
234
234
 
235
- 6.8. Deprecated options => deprecated-options-1dtzo0g
235
+ 8.7.1. passenger_temp_dir <directory> => passenger-temp-dir-directory--1t3opri
236
236
 
237
- 6.8.1. rails_spawn_method => rails-spawn-method-17vdnpt
237
+ 8.7.2. passenger_fly_with <socket filename> => passenger-fly-with-socket-filename--1amd1xn
238
238
 
239
- 7. Troubleshooting => troubleshooting-1pt0c76
239
+ 8.8. Deprecated options => deprecated-options-1dtzo0g
240
240
 
241
- 7.1. Generic troubleshooting tips => generic-troubleshooting-tips-xhe4nu
241
+ 8.8.1. rails_spawn_method => rails-spawn-method-17vdnpt
242
242
 
243
- 7.2. Why does the first request take a long time? => why-does-the-first-request-take-a-long-time--1knj9fp
243
+ 9. Troubleshooting => troubleshooting-1pt0c76
244
244
 
245
- 7.3. Upon accessing the web app, Nginx reports a "Permission denied" error => upon-accessing-the-web-app-nginx-reports-a-permission-denied-error-1wgatlk
245
+ 9.1. Generic troubleshooting tips => generic-troubleshooting-tips-xhe4nu
246
246
 
247
- 7.4. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-1e2m21h
247
+ 9.2. Why does the first request take a long time? => why-does-the-first-request-take-a-long-time--1knj9fp
248
248
 
249
- 7.5. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-troubleshooting-n8u5u1
249
+ 9.3. Upon accessing the web app, Nginx reports a "Permission denied" error => upon-accessing-the-web-app-nginx-reports-a-permission-denied-error-1wgatlk
250
250
 
251
- 7.5.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-9p7b2g
251
+ 9.4. The application thinks its not on SSL even though it is => the-application-thinks-its-not-on-ssl-even-though-it-is-1e2m21h
252
252
 
253
- 7.5.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-58ww8s
253
+ 9.5. Ruby on Rails-specific troubleshooting => ruby-on-rails-specific-troubleshooting-n8u5u1
254
254
 
255
- 7.5.3. The Rails application’s log file is not being written to => the-rails-application-s-log-file-is-not-being-written-to-9m2i5h
255
+ 9.5.1. The "About your application’s environment" link does not work => the-about-your-application-s-environment-link-does-not-work-9p7b2g
256
256
 
257
- 8. Analysis and system maintenance => analysis-and-system-maintenance-1nnlnj8
257
+ 9.5.2. The Rails application reports that it’s unable to start because of a permission error => the-rails-application-reports-that-it-s-unable-to-start-because-of-a-permission-error-58ww8s
258
258
 
259
- 8.1. Inspecting memory usage => inspecting-memory-usage-1k6y8v0
259
+ 9.5.3. The Rails application’s log file is not being written to => the-rails-application-s-log-file-is-not-being-written-to-9m2i5h
260
260
 
261
- 8.2. Inspecting Phusion Passenger’s internal status => inspecting-phusion-passenger-s-internal-status-v36wbc
261
+ 10. Analysis and system maintenance => analysis-and-system-maintenance-1nnlnj8
262
262
 
263
- 8.3. Debugging frozen applications => debugging-frozen-applications-qoctl8
263
+ 10.1. Inspecting memory usage => inspecting-memory-usage-1k6y8v0
264
264
 
265
- 8.4. Accessing individual application processes => accessing-individual-application-processes-1qe4fqk
265
+ 10.2. Inspecting Phusion Passenger’s internal status => inspecting-phusion-passenger-s-internal-status-v36wbc
266
266
 
267
- 8.5. Attaching an IRB console to an application process => attaching-an-irb-console-to-an-application-process-d36enw
267
+ 10.3. Debugging frozen applications => debugging-frozen-applications-qoctl8
268
268
 
269
- 9. Tips => tips-n4c22d
269
+ 10.4. Accessing individual application processes => accessing-individual-application-processes-1qe4fqk
270
270
 
271
- 9.1. User Switching (security feature) => user-switching-security--zmsy9o
271
+ 10.5. Attaching an IRB console to an application process => attaching-an-irb-console-to-an-application-process-d36enw
272
272
 
273
- 9.1.1. Requirements => requirements-15ozqdj
273
+ 11. Tips => tips-n4c22d
274
274
 
275
- 9.1.2. Effects => effects-nd2m44
275
+ 11.1. User Switching (security feature) => user-switching-security--zmsy9o
276
276
 
277
- 9.1.3. Caveats & troubleshooting => caveats-troubleshooting-mbw582
277
+ 11.1.1. Requirements => requirements-15ozqdj
278
278
 
279
- 9.1.4. Finding out what user an application is running as => finding-out-what-user-an-application-is-running-as-1ni7zk6
279
+ 11.1.2. Effects => effects-nd2m44
280
280
 
281
- 9.2. Copy-on-write memory support (reducing memory consumption of Ruby applications) => reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1o3z66q
281
+ 11.1.3. Caveats & troubleshooting => caveats-troubleshooting-mbw582
282
282
 
283
- 9.3. Capistrano recipe => capistrano-recipe-pfn4qu
283
+ 11.1.4. Finding out what user an application is running as => finding-out-what-user-an-application-is-running-as-1ni7zk6
284
284
 
285
- 9.4. Bundler support => bundler-support-19v1h43
285
+ 11.2. Copy-on-write memory support (reducing memory consumption of Ruby applications) => reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1o3z66q
286
286
 
287
- 9.4.1. Does Phusion Passenger itself need to be added to the Gemfile? => does-phusion-passenger-itself-need-to-be-added-to-the-gemfile--xn1a11
287
+ 11.3. Capistrano recipe => capistrano-recipe-pfn4qu
288
288
 
289
- 9.5. Installing multiple Ruby on Rails versions => installing-multiple-ruby-on-rails-versions-1bp1fff
289
+ 11.4. Bundler support => bundler-support-19v1h43
290
290
 
291
- 9.6. Making the application restart after each request => making-the-application-restart-after-each-request-vimy48
291
+ 11.4.1. Does Phusion Passenger itself need to be added to the Gemfile? => does-phusion-passenger-itself-need-to-be-added-to-the-gemfile--xn1a11
292
292
 
293
- 9.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments => how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-11mzwt6
293
+ 11.5. Installing multiple Ruby on Rails versions => installing-multiple-ruby-on-rails-versions-1bp1fff
294
294
 
295
- 9.8. Out-of-Band Work and Out-of-Band Garbage Collection => out-of-band-work-and-out-of-band-garbage-collection-v89lu2
295
+ 11.6. Making the application restart after each request => making-the-application-restart-after-each-request-vimy48
296
296
 
297
- 9.9. Flying Passenger => flying-passenger-137qg5e
297
+ 11.7. How to fix broken images/CSS/JavaScript URIs in sub-URI deployments => how-to-fix-broken-images-css-javascript-uris-in-sub-uri-deployments-11mzwt6
298
298
 
299
- 9.9.1. Requirements => requirements-194ysj6
299
+ 11.8. Out-of-Band Work and Out-of-Band Garbage Collection => out-of-band-work-and-out-of-band-garbage-collection-v89lu2
300
300
 
301
- 9.9.2. Basic usage => basic-usage-1qtgvwx
301
+ 11.9. Hooks => hooks-qrxle1
302
302
 
303
- 9.9.3. Configuring Flying Passenger => configuring-flying-passenger-n558np
303
+ 11.9.1. Example => example-1orara9
304
304
 
305
- 9.9.4. Managing the Flying Passenger daemon => managing-the-flying-passenger-daemon-vjmzdh
305
+ 11.9.2. Environment => environment-10uhg8m
306
306
 
307
- 9.9.5. Using Flying Passenger with MRI 1.8 or JRuby => using-flying-passenger-with-mri-1-8-or-jruby-pxho35
307
+ 11.9.3. Blocking and concurrency => blocking-and-concurrency-g5njp1
308
308
 
309
- 9.9.6. Caveats and limitations => caveats-and-limitations-15wakf
309
+ 11.9.4. Error handling => error-handling-m78oxs
310
310
 
311
- 10. Under the hood => under-the-hood-8uney
311
+ 11.9.5. Available hooks => available-hooks-11w1prq
312
312
 
313
- 10.1. Page caching support => page-caching-support-nafhf6
313
+ 11.10. Flying Passenger => flying-passenger-137qg5e
314
314
 
315
- 10.2. Phusion Passenger and its relationship with Ruby => phusion-passenger-and-its-relationship-with-ruby-1hub1pa
315
+ 11.10.1. Requirements => requirements-194ysj6
316
316
 
317
- 10.2.1. How Ruby is used => how-ruby-is-used-j7g2a4
317
+ 11.10.2. Basic usage => basic-usage-1qtgvwx
318
318
 
319
- 10.2.2. When the system has multiple Ruby interpreters => when-the-system-has-multiple-ruby-interpreters-fwn3t
319
+ 11.10.3. Configuring Flying Passenger => configuring-flying-passenger-n558np
320
320
 
321
- 10.3. How Phusion Passenger detects whether a virtual host is a web application => how-phusion-passenger-detects-whether-a-virtual-host-is-a-web-application-13qbmhn
321
+ 11.10.4. Managing the Flying Passenger daemon => managing-the-flying-passenger-daemon-vjmzdh
322
322
 
323
- 11. Appendix A: About this document => appendix-a-about-this-document-zfvixm
323
+ 11.10.5. Using Flying Passenger with MRI 1.8 or JRuby => using-flying-passenger-with-mri-1-8-or-jruby-pxho35
324
324
 
325
- 12. Appendix B: Terminology => appendix-b-terminology-wzv5ro
325
+ 11.10.6. Caveats and limitations => caveats-and-limitations-15wakf
326
326
 
327
- 12.1. Application root => application-root-1fd6bqv
327
+ 12. Under the hood => under-the-hood-8uney
328
328
 
329
- 12.2. Idle process => idle-process-13byfw9
329
+ 12.1. Page caching support => page-caching-support-nafhf6
330
330
 
331
- 12.3. Inactive process => inactive-process-1d2h0po
331
+ 12.2. Phusion Passenger and its relationship with Ruby => phusion-passenger-and-its-relationship-with-ruby-1hub1pa
332
332
 
333
- 13. Appendix C: Spawning methods explained => appendix-c-spawning-methods-explained-tcp8e6
333
+ 12.2.1. How Ruby is used => how-ruby-is-used-j7g2a4
334
334
 
335
- 13.1. The most straightforward and traditional way: direct spawning => the-most-straightforward-and-traditional-way-conservative-spawning-civ29z
335
+ 12.2.2. When the system has multiple Ruby interpreters => when-the-system-has-multiple-ruby-interpreters-fwn3t
336
336
 
337
- 13.2. The smart spawning method => the-smart-spawning-method-7nhgtj
337
+ 12.3. How Phusion Passenger detects whether a virtual host is a web application => how-phusion-passenger-detects-whether-a-virtual-host-is-a-web-application-13qbmhn
338
338
 
339
- 13.2.1. How it works => how-it-works-f9umga
339
+ 13. Appendix A: About this document => appendix-a-about-this-document-zfvixm
340
340
 
341
- 13.2.2. Summary of benefits => summary-of-benefits-qovyvk
341
+ 14. Appendix B: Terminology => appendix-b-terminology-wzv5ro
342
342
 
343
- 13.3. Smart spawning gotcha #1: unintentional file descriptor sharing => smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-cebw6q
343
+ 14.1. Application root => application-root-1fd6bqv
344
344
 
345
- 13.3.1. Example 1: Memcached connection sharing (harmful) => example-1-memcached-connection-sharing-harmful--1wfs3ad
345
+ 14.2. Idle process => idle-process-13byfw9
346
346
 
347
- 13.3.2. Example 2: Log file sharing (not harmful) => example-2-log-file-sharing-not-harmful--ox4yfy
347
+ 14.3. Inactive process => inactive-process-1d2h0po
348
348
 
349
- 13.4. Smart spawning gotcha #2: the need to revive threads => smart-spawning-gotcha-2-the-need-to-revive-threads-1ey176o
349
+ 15. Appendix C: Spawning methods explained => appendix-c-spawning-methods-explained-tcp8e6
350
350
 
351
- 13.5. Smart spawning gotcha #3: code load order => smart-spawning-gotcha-3-code-load-order-12ydsn8
351
+ 15.1. The most straightforward and traditional way: direct spawning => the-most-straightforward-and-traditional-way-conservative-spawning-civ29z
352
352
 
353
- 14. Appendix D: About environment variables => appendix-d-about-environment-variables-1t2cuff
353
+ 15.2. The smart spawning method => the-smart-spawning-method-7nhgtj
354
354
 
355
- 14.1. Working with environment variables => working-with-environment-variables-1kmvq8w
355
+ 15.2.1. How it works => how-it-works-f9umga
356
356
 
357
- 14.2. The PATH environment variable => the-path-environment-variable-vlp05e
357
+ 15.2.2. Summary of benefits => summary-of-benefits-qovyvk
358
358
 
359
- 14.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-1flz2tu
359
+ 15.3. Smart spawning gotcha #1: unintentional file descriptor sharing => smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-cebw6q
360
360
 
361
- 14.3. Making environment variables permanent => making-environment-variables-permanent-1wjyhzt
361
+ 15.3.1. Example 1: Memcached connection sharing (harmful) => example-1-memcached-connection-sharing-harmful--1wfs3ad
362
362
 
363
- 14.3.1. bash => bash-19xsxec
363
+ 15.3.2. Example 2: Log file sharing (not harmful) => example-2-log-file-sharing-not-harmful--ox4yfy
364
364
 
365
- 14.3.2. Apache => apache-9hqtyj
365
+ 15.4. Smart spawning gotcha #2: the need to revive threads => smart-spawning-gotcha-2-the-need-to-revive-threads-1ey176o
366
366
 
367
- 14.3.3. Nginx => nginx-157dpwy
367
+ 15.5. Smart spawning gotcha #3: code load order => smart-spawning-gotcha-3-code-load-order-12ydsn8
368
368
 
369
- 14.3.4. cron => cron-1nuc9cz
369
+ 16. Appendix D: About environment variables => appendix-d-about-environment-variables-1t2cuff
370
370
 
371
- 14.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-uiewl5
371
+ 16.1. Working with environment variables => working-with-environment-variables-1kmvq8w
372
372
 
373
- 14.4. Environment variables and sudo => environment-variables-and-sudo-10lphxn
373
+ 16.2. The PATH environment variable => the-path-environment-variable-vlp05e
374
+
375
+ 16.2.1. Adding Phusion Passenger’s administration tools to PATH => adding-phusion-passenger-s-administration-tools-to-path-1flz2tu
376
+
377
+ 16.3. Making environment variables permanent => making-environment-variables-permanent-1wjyhzt
378
+
379
+ 16.3.1. bash => bash-19xsxec
380
+
381
+ 16.3.2. Apache => apache-9hqtyj
382
+
383
+ 16.3.3. Nginx => nginx-157dpwy
384
+
385
+ 16.3.4. cron => cron-1nuc9cz
386
+
387
+ 16.3.5. Phusion Passenger-served apps => phusion-passenger-served-apps-uiewl5
388
+
389
+ 16.4. Environment variables and sudo => environment-variables-and-sudo-10lphxn
374
390
 
@@ -491,6 +491,16 @@ touch /webapps/wsgiapp/tmp/restart.txt
491
491
  -------------------------------------------
492
492
 
493
493
 
494
+ == Deploying a Node.js application
495
+
496
+ Please refer to link:https://github.com/phusion/passenger/wiki/Phusion-Passenger%3A-Node.js-tutorial[the Node.js tutorial].
497
+
498
+
499
+ == Deploying a Meteor application
500
+
501
+ Please refer to link:http://blog.phusion.nl/2013/11/01/will-meteor-kill-rails-i-dont-know-but-phusion-passenger-open-sources-meteor-support/[the Meteor tutorial].
502
+
503
+
494
504
  == Configuring Phusion Passenger ==
495
505
 
496
506
  After installation, Phusion Passenger does not need any further configurations.
@@ -844,6 +854,7 @@ This option may occur in the following places:
844
854
 
845
855
  In each place, it may be specified at most once. The default value is 'off'.
846
856
 
857
+ [[passenger_set_cgi_param]]
847
858
  ==== passenger_set_cgi_param <CGI environment name> <value> ====
848
859
  Allows one to define additional CGI environment variables to pass to the web
849
860
  application. This is comparable to ngx_http_fastcgi_module's 'fastcgi_param'
@@ -1037,7 +1048,9 @@ When all application processes are already handling their maximum number of conc
1037
1048
 
1038
1049
  A value of 0 means that the queue is unbounded.
1039
1050
 
1040
- You may combine this with <<passenger_intercept_errors,passenger_intercept_errors>> and `error_page` to set a custom error page whenever the queue is full. In the following example, Nginx will serve /error503.html whenever the queue is full:
1051
+ link:http://stackoverflow.com/questions/20402801/what-is-optimal-value-for-phusion-passenger-passengermaxrequestqueuesize[This article on StackOverflow] explains how the request queue works, what it means for the queue to grow or become full, why that is bad, and what you can do about it.
1052
+
1053
+ You may combine this option with <<passenger_intercept_errors,passenger_intercept_errors>> and `error_page` to set a custom error page whenever the queue is full. In the following example, Nginx will serve /error503.html whenever the queue is full:
1041
1054
 
1042
1055
  ---------------------------------
1043
1056
  passenger_intercept_errors on;