passenger 3.0.21 → 3.9.1.beta
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/DEVELOPERS.TXT +4 -10
- data/NEWS +19 -27
- data/Rakefile +20 -19
- data/bin/passenger +3 -2
- data/bin/passenger-config +35 -5
- data/bin/passenger-install-apache2-module +12 -12
- data/bin/passenger-install-nginx-module +55 -38
- data/bin/passenger-memory-stats +3 -1
- data/bin/passenger-status +7 -35
- data/build/agents.rb +107 -21
- data/build/apache2.rb +11 -46
- data/build/basics.rb +61 -9
- data/build/common_library.rb +59 -142
- data/build/cxx_tests.rb +111 -110
- data/build/documentation.rb +33 -0
- data/build/misc.rb +30 -12
- data/build/nginx.rb +10 -39
- data/build/oxt_tests.rb +1 -0
- data/build/ruby_extension.rb +1 -5
- data/build/test_basics.rb +3 -2
- data/dev/copy_boost_headers.rb +2 -1
- data/doc/Architectural overview.html +49 -90
- data/doc/DebuggingAndStressTesting.txt.md +49 -0
- data/doc/Packaging.txt.md +254 -0
- data/doc/Security of user switching support.html +35 -66
- data/doc/Users guide Apache.html +588 -758
- data/doc/Users guide Apache.idmap.txt +253 -136
- data/doc/Users guide Apache.txt +154 -109
- data/doc/Users guide Nginx.html +544 -660
- data/doc/Users guide Nginx.idmap.txt +179 -91
- data/doc/Users guide Nginx.txt +192 -118
- data/doc/Users guide Standalone.html +65 -48
- data/doc/Users guide Standalone.idmap.txt +10 -2
- data/doc/Users guide Standalone.txt +4 -0
- data/doc/images/glyphicons-halflings-white.png +0 -0
- data/doc/images/glyphicons-halflings.png +0 -0
- data/doc/images/phusion_banner_small.png +0 -0
- data/doc/images/{smart-lv2.png → smart.png} +0 -0
- data/doc/images/{smart-lv2.svg → smart.svg} +0 -0
- data/doc/templates/bootstrap.min.css +397 -0
- data/doc/templates/markdown.html.erb +117 -0
- data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +2 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +26 -48
- data/doc/users_guide_snippets/passenger_spawn_method.txt +18 -30
- data/doc/users_guide_snippets/support_information.txt +30 -0
- data/ext/apache2/Bucket.cpp +9 -26
- data/ext/apache2/Bucket.h +13 -10
- data/ext/apache2/Configuration.cpp +70 -58
- data/ext/apache2/Configuration.hpp +19 -47
- data/ext/apache2/DirectoryMapper.h +7 -7
- data/ext/apache2/Hooks.cpp +150 -313
- data/ext/boost/algorithm/string/detail/case_conv.hpp +4 -2
- data/ext/boost/algorithm/string/detail/find_format.hpp +20 -20
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +23 -23
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +2 -2
- data/ext/boost/algorithm/string/detail/formatter.hpp +25 -0
- data/ext/boost/algorithm/string/formatter.hpp +20 -3
- data/ext/boost/assert.hpp +85 -4
- data/ext/boost/bind/bind.hpp +1 -1
- data/ext/boost/concept/detail/backward_compatibility.hpp +1 -1
- data/ext/boost/concept_check.hpp +140 -64
- data/ext/boost/config.hpp +1 -1
- data/ext/boost/config/auto_link.hpp +8 -6
- data/ext/boost/config/compiler/borland.hpp +12 -2
- data/ext/boost/config/compiler/clang.hpp +89 -30
- data/ext/boost/config/compiler/codegear.hpp +3 -2
- data/ext/boost/config/compiler/common_edg.hpp +7 -5
- data/ext/boost/config/compiler/cray.hpp +61 -0
- data/ext/boost/config/compiler/digitalmars.hpp +9 -1
- data/ext/boost/config/compiler/gcc.hpp +33 -24
- data/ext/boost/config/compiler/gcc_xml.hpp +4 -0
- data/ext/boost/config/compiler/hp_acc.hpp +12 -1
- data/ext/boost/config/compiler/intel.hpp +78 -4
- data/ext/boost/config/compiler/metrowerks.hpp +4 -1
- data/ext/boost/config/compiler/mpw.hpp +4 -1
- data/ext/boost/config/compiler/nvcc.hpp +8 -66
- data/ext/boost/config/compiler/pathscale.hpp +80 -0
- data/ext/boost/config/compiler/pgi.hpp +5 -5
- data/ext/boost/config/compiler/sunpro_cc.hpp +4 -1
- data/ext/boost/config/compiler/vacpp.hpp +37 -13
- data/ext/boost/config/compiler/visualc.hpp +24 -11
- data/ext/boost/config/platform/bsd.hpp +1 -1
- data/ext/boost/config/platform/cray.hpp +18 -0
- data/ext/boost/config/platform/cygwin.hpp +10 -0
- data/ext/boost/config/platform/linux.hpp +5 -0
- data/ext/boost/config/platform/macos.hpp +5 -4
- data/ext/boost/config/platform/symbian.hpp +5 -2
- data/ext/boost/config/platform/vms.hpp +25 -0
- data/ext/boost/config/platform/win32.hpp +7 -1
- data/ext/boost/config/select_compiler_config.hpp +8 -25
- data/ext/boost/config/select_platform_config.hpp +8 -1
- data/ext/boost/config/select_stdlib_config.hpp +9 -1
- data/ext/boost/config/stdlib/dinkumware.hpp +6 -9
- data/ext/boost/config/stdlib/libcomo.hpp +1 -4
- data/ext/boost/config/stdlib/libcpp.hpp +36 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +37 -11
- data/ext/boost/config/stdlib/modena.hpp +1 -4
- data/ext/boost/config/stdlib/msl.hpp +1 -4
- data/ext/boost/config/stdlib/roguewave.hpp +9 -6
- data/ext/boost/config/stdlib/sgi.hpp +12 -4
- data/ext/boost/config/stdlib/stlport.hpp +11 -4
- data/ext/boost/config/stdlib/vacpp.hpp +11 -4
- data/ext/boost/config/suffix.hpp +71 -6
- data/ext/boost/config/warning_disable.hpp +1 -1
- data/ext/boost/container/container_fwd.hpp +177 -0
- data/ext/boost/cstdint.hpp +17 -12
- data/ext/boost/current_function.hpp +2 -1
- data/ext/boost/date_time/c_time.hpp +17 -1
- data/ext/boost/date_time/compiler_config.hpp +13 -15
- data/ext/boost/date_time/date_formatting.hpp +7 -1
- data/ext/boost/date_time/filetime_functions.hpp +4 -4
- data/ext/boost/date_time/gregorian_calendar.ipp +2 -2
- data/ext/boost/date_time/strings_from_facet.hpp +3 -3
- data/ext/boost/date_time/time_facet.hpp +101 -101
- data/ext/boost/detail/endian.hpp +4 -2
- data/ext/boost/detail/fenv.hpp +74 -0
- data/ext/boost/detail/sp_typeinfo.hpp +6 -0
- data/ext/boost/exception/detail/clone_current_exception.hpp +47 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +194 -122
- data/ext/boost/exception/detail/type_info.hpp +3 -3
- data/ext/boost/exception/diagnostic_information.hpp +37 -21
- data/ext/boost/exception/exception.hpp +21 -1
- data/ext/boost/exception/info.hpp +0 -1
- data/ext/boost/function.hpp +2 -2
- data/ext/boost/function/function_base.hpp +15 -9
- data/ext/boost/function/function_template.hpp +26 -48
- data/ext/boost/integer_fwd.hpp +0 -16
- data/ext/boost/integer_traits.hpp +2 -2
- data/ext/boost/iterator.hpp +1 -1
- data/ext/boost/iterator/iterator_adaptor.hpp +1 -7
- data/ext/boost/iterator/iterator_facade.hpp +13 -13
- data/ext/boost/iterator/transform_iterator.hpp +5 -20
- data/ext/boost/lexical_cast.hpp +1655 -673
- data/ext/boost/math/policies/policy.hpp +982 -0
- data/ext/boost/math/special_functions/detail/fp_traits.hpp +570 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +80 -0
- data/ext/boost/math/special_functions/fpclassify.hpp +533 -0
- data/ext/boost/math/special_functions/math_fwd.hpp +1070 -0
- data/ext/boost/math/special_functions/sign.hpp +145 -0
- data/ext/boost/math/tools/config.hpp +321 -0
- data/ext/boost/math/tools/promotion.hpp +150 -0
- data/ext/boost/math/tools/real_cast.hpp +29 -0
- data/ext/boost/math/tools/user.hpp +97 -0
- data/ext/boost/move/move.hpp +1222 -0
- data/ext/boost/mpl/O1_size.hpp +40 -0
- data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
- data/ext/boost/mpl/advance.hpp +76 -0
- data/ext/boost/mpl/advance_fwd.hpp +28 -0
- data/ext/boost/mpl/at.hpp +52 -0
- data/ext/boost/mpl/at_fwd.hpp +24 -0
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
- data/ext/boost/mpl/aux_/advance_backward.hpp +128 -0
- data/ext/boost/mpl/aux_/advance_forward.hpp +127 -0
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -0
- data/ext/boost/mpl/aux_/at_impl.hpp +45 -0
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +101 -0
- data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/aux_/comparison_op.hpp +83 -0
- data/ext/boost/mpl/aux_/config/forwarding.hpp +27 -0
- data/ext/boost/mpl/aux_/config/typeof.hpp +38 -0
- data/ext/boost/mpl/aux_/contains_impl.hpp +61 -0
- data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
- data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
- data/ext/boost/mpl/aux_/has_size.hpp +23 -0
- data/ext/boost/mpl/aux_/has_tag.hpp +23 -0
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
- data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
- data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
- data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
- data/ext/boost/mpl/aux_/msvc_type.hpp +62 -0
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +77 -0
- data/ext/boost/mpl/aux_/numeric_op.hpp +315 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
- data/ext/boost/mpl/aux_/push_back_impl.hpp +70 -0
- data/ext/boost/mpl/aux_/push_front_impl.hpp +71 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +63 -0
- data/ext/boost/mpl/back_fwd.hpp +24 -0
- data/ext/boost/mpl/back_inserter.hpp +34 -0
- data/ext/boost/mpl/begin_end.hpp +57 -0
- data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
- data/ext/boost/mpl/clear.hpp +39 -0
- data/ext/boost/mpl/clear_fwd.hpp +24 -0
- data/ext/boost/mpl/comparison.hpp +24 -0
- data/ext/boost/mpl/contains.hpp +41 -0
- data/ext/boost/mpl/contains_fwd.hpp +25 -0
- data/ext/boost/mpl/deref.hpp +41 -0
- data/ext/boost/mpl/distance.hpp +78 -0
- data/ext/boost/mpl/distance_fwd.hpp +28 -0
- data/ext/boost/mpl/empty_fwd.hpp +24 -0
- data/ext/boost/mpl/equal_to.hpp +21 -0
- data/ext/boost/mpl/find.hpp +38 -0
- data/ext/boost/mpl/find_if.hpp +50 -0
- data/ext/boost/mpl/fold.hpp +48 -0
- data/ext/boost/mpl/front_fwd.hpp +24 -0
- data/ext/boost/mpl/front_inserter.hpp +33 -0
- data/ext/boost/mpl/greater.hpp +21 -0
- data/ext/boost/mpl/greater_equal.hpp +21 -0
- data/ext/boost/mpl/inserter.hpp +32 -0
- data/ext/boost/mpl/iter_fold.hpp +49 -0
- data/ext/boost/mpl/iter_fold_if.hpp +117 -0
- data/ext/boost/mpl/iterator_range.hpp +42 -0
- data/ext/boost/mpl/iterator_tags.hpp +27 -0
- data/ext/boost/mpl/less.hpp +21 -0
- data/ext/boost/mpl/less_equal.hpp +21 -0
- data/ext/boost/mpl/limits/list.hpp +21 -0
- data/ext/boost/mpl/limits/vector.hpp +21 -0
- data/ext/boost/mpl/list.hpp +57 -0
- data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
- data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
- data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
- data/ext/boost/mpl/list/aux_/front.hpp +33 -0
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
- data/ext/boost/mpl/list/aux_/item.hpp +55 -0
- data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
- data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
- data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
- data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
- data/ext/boost/mpl/list/aux_/size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/list/list0.hpp +42 -0
- data/ext/boost/mpl/list/list10.hpp +43 -0
- data/ext/boost/mpl/list/list20.hpp +43 -0
- data/ext/boost/mpl/long.hpp +22 -0
- data/ext/boost/mpl/long_fwd.hpp +27 -0
- data/ext/boost/mpl/minus.hpp +21 -0
- data/ext/boost/mpl/multiplies.hpp +53 -0
- data/ext/boost/mpl/negate.hpp +81 -0
- data/ext/boost/mpl/not_equal_to.hpp +21 -0
- data/ext/boost/mpl/numeric_cast.hpp +41 -0
- data/ext/boost/mpl/pair.hpp +70 -0
- data/ext/boost/mpl/plus.hpp +21 -0
- data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
- data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
- data/ext/boost/mpl/prior.hpp +19 -0
- data/ext/boost/mpl/push_back.hpp +53 -0
- data/ext/boost/mpl/push_back_fwd.hpp +24 -0
- data/ext/boost/mpl/push_front.hpp +52 -0
- data/ext/boost/mpl/push_front_fwd.hpp +24 -0
- data/ext/boost/mpl/remove_if.hpp +83 -0
- data/ext/boost/mpl/reverse_fold.hpp +50 -0
- data/ext/boost/mpl/same_as.hpp +55 -0
- data/ext/boost/mpl/sequence_tag.hpp +124 -0
- data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
- data/ext/boost/mpl/size.hpp +42 -0
- data/ext/boost/mpl/size_fwd.hpp +24 -0
- data/ext/boost/mpl/tag.hpp +52 -0
- data/ext/boost/mpl/times.hpp +21 -0
- data/ext/boost/mpl/vector.hpp +57 -0
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
- data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
- data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
- data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
- data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
- data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
- data/ext/boost/mpl/vector/vector0.hpp +34 -0
- data/ext/boost/mpl/vector/vector10.hpp +45 -0
- data/ext/boost/mpl/vector/vector20.hpp +45 -0
- data/ext/boost/none.hpp +1 -1
- data/ext/boost/numeric/conversion/bounds.hpp +24 -0
- data/ext/boost/numeric/conversion/cast.hpp +61 -0
- data/ext/boost/numeric/conversion/conversion_traits.hpp +39 -0
- data/ext/boost/numeric/conversion/converter.hpp +68 -0
- data/ext/boost/numeric/conversion/converter_policies.hpp +186 -0
- data/ext/boost/numeric/conversion/detail/bounds.hpp +58 -0
- data/ext/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
- data/ext/boost/numeric/conversion/detail/converter.hpp +602 -0
- data/ext/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
- data/ext/boost/numeric/conversion/detail/meta.hpp +120 -0
- data/ext/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
- data/ext/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
- data/ext/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
- data/ext/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
- data/ext/boost/operators.hpp +3 -1
- data/ext/boost/optional/optional.hpp +146 -79
- data/ext/boost/optional/optional_fwd.hpp +8 -1
- data/ext/boost/preprocessor/cat.hpp +2 -2
- data/ext/boost/preprocessor/config/config.hpp +39 -4
- data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
- data/ext/boost/preprocessor/facilities/overload.hpp +25 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +3 -3
- data/ext/boost/preprocessor/iteration/iterate.hpp +3 -3
- data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
- data/ext/boost/preprocessor/seq/cat.hpp +5 -4
- data/ext/boost/preprocessor/seq/size.hpp +0 -1
- data/ext/boost/preprocessor/tuple/eat.hpp +83 -34
- data/ext/boost/preprocessor/tuple/elem.hpp +161 -355
- data/ext/boost/preprocessor/tuple/rem.hpp +110 -48
- data/ext/boost/preprocessor/tuple/to_list.hpp +90 -36
- data/ext/boost/preprocessor/variadic/elem.hpp +94 -0
- data/ext/boost/preprocessor/variadic/size.hpp +30 -0
- data/ext/boost/range/begin.hpp +17 -6
- data/ext/boost/range/concepts.hpp +37 -2
- data/ext/boost/range/detail/safe_bool.hpp +72 -0
- data/ext/boost/range/end.hpp +14 -9
- data/ext/boost/range/iterator_range_core.hpp +120 -12
- data/ext/boost/range/size.hpp +21 -5
- data/ext/boost/smart_ptr/detail/shared_count.hpp +88 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +142 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +9 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +10 -2
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +5 -1
- data/ext/boost/smart_ptr/detail/spinlock.hpp +4 -1
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +20 -3
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +4 -0
- data/ext/boost/smart_ptr/make_shared.hpp +591 -22
- data/ext/boost/smart_ptr/shared_array.hpp +29 -1
- data/ext/boost/smart_ptr/shared_ptr.hpp +29 -13
- data/ext/boost/smart_ptr/weak_ptr.hpp +24 -12
- data/ext/boost/src/pthread/once.cpp +9 -7
- data/ext/boost/src/pthread/thread.cpp +32 -28
- data/ext/boost/src/pthread/timeconv.inl +4 -5
- data/ext/boost/src/tss_null.cpp +5 -1
- data/ext/boost/static_assert.hpp +8 -2
- data/ext/boost/thread/detail/config.hpp +19 -4
- data/ext/boost/thread/detail/move.hpp +11 -5
- data/ext/boost/thread/detail/thread.hpp +59 -43
- data/ext/boost/thread/exceptions.hpp +9 -9
- data/ext/boost/thread/future.hpp +150 -82
- data/ext/boost/thread/locks.hpp +101 -60
- data/ext/boost/thread/pthread/condition_variable.hpp +79 -32
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +12 -3
- data/ext/boost/thread/pthread/mutex.hpp +17 -14
- data/ext/boost/thread/pthread/once.hpp +3 -4
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +12 -2
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -19
- data/ext/boost/thread/pthread/shared_mutex.hpp +13 -13
- data/ext/boost/thread/pthread/thread_data.hpp +40 -12
- data/ext/boost/thread/thread_time.hpp +5 -0
- data/ext/boost/throw_exception.hpp +1 -1
- data/ext/boost/token_functions.hpp +34 -10
- data/ext/boost/type_traits/add_rvalue_reference.hpp +66 -0
- data/ext/boost/type_traits/alignment_of.hpp +1 -1
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +26 -3
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +3 -2
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +1 -1
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +6 -4
- data/ext/boost/type_traits/detail/type_trait_def.hpp +8 -2
- data/ext/boost/type_traits/function_traits.hpp +1 -1
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +53 -0
- data/ext/boost/type_traits/has_nothrow_copy.hpp +19 -5
- data/ext/boost/type_traits/has_trivial_constructor.hpp +51 -0
- data/ext/boost/type_traits/has_trivial_copy.hpp +20 -5
- data/ext/boost/type_traits/has_trivial_destructor.hpp +12 -5
- data/ext/boost/type_traits/intrinsics.hpp +119 -71
- data/ext/boost/type_traits/is_const.hpp +5 -5
- data/ext/boost/type_traits/is_convertible.hpp +14 -13
- data/ext/boost/type_traits/is_enum.hpp +1 -1
- data/ext/boost/type_traits/is_floating_point.hpp +27 -0
- data/ext/boost/type_traits/is_function.hpp +3 -3
- data/ext/boost/type_traits/is_fundamental.hpp +1 -1
- data/ext/boost/type_traits/is_member_function_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_member_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_pod.hpp +11 -3
- data/ext/boost/type_traits/is_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_signed.hpp +8 -3
- data/ext/boost/type_traits/is_union.hpp +8 -0
- data/ext/boost/type_traits/is_unsigned.hpp +9 -4
- data/ext/boost/type_traits/is_volatile.hpp +5 -5
- data/ext/boost/type_traits/remove_cv.hpp +4 -3
- data/ext/boost/type_traits/remove_pointer.hpp +51 -2
- data/ext/boost/type_traits/remove_reference.hpp +2 -2
- data/ext/boost/type_traits/type_with_alignment.hpp +8 -2
- data/ext/boost/utility/declval.hpp +44 -0
- data/ext/boost/utility/detail/in_place_factory_prefix.hpp +36 -0
- data/ext/boost/utility/detail/in_place_factory_suffix.hpp +23 -0
- data/ext/boost/utility/detail/result_of_iterate.hpp +142 -0
- data/ext/boost/utility/in_place_factory.hpp +88 -0
- data/ext/boost/utility/result_of.hpp +103 -0
- data/ext/boost/utility/swap.hpp +55 -0
- data/ext/common/AnsiColorConstants.h +36 -0
- data/ext/common/ApplicationPool2/Common.h +87 -0
- data/ext/common/ApplicationPool2/ComponentInfo.h +53 -0
- data/ext/common/ApplicationPool2/Group.h +648 -0
- data/ext/common/ApplicationPool2/Implementation.cpp +580 -0
- data/ext/common/ApplicationPool2/Options.h +576 -0
- data/ext/common/ApplicationPool2/PipeWatcher.h +61 -0
- data/ext/common/ApplicationPool2/Pool.h +1181 -0
- data/ext/common/ApplicationPool2/Process.h +425 -0
- data/ext/common/ApplicationPool2/README.md +96 -0
- data/ext/common/ApplicationPool2/Session.h +158 -0
- data/ext/common/ApplicationPool2/Socket.h +246 -0
- data/ext/common/ApplicationPool2/Spawner.h +2212 -0
- data/ext/common/ApplicationPool2/SuperGroup.h +749 -0
- data/ext/common/BackgroundEventLoop.cpp +129 -0
- data/ext/common/BackgroundEventLoop.h +61 -0
- data/ext/common/Constants.h +3 -1
- data/ext/common/EventedBufferedInput.h +331 -0
- data/ext/common/EventedMessageServer.h +17 -34
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/Exceptions.h +71 -19
- data/ext/common/FileDescriptor.h +8 -6
- data/ext/common/HttpConstants.h +167 -0
- data/ext/common/IniFile.h +24 -0
- data/ext/common/Logging.h +62 -849
- data/ext/common/MessageReadersWriters.h +19 -0
- data/ext/common/MessageServer.h +11 -14
- data/ext/common/MultiLibeio.cpp +198 -0
- data/ext/common/MultiLibeio.h +67 -0
- data/ext/common/ResourceLocator.h +24 -41
- data/ext/common/SafeLibev.h +186 -14
- data/ext/common/StaticString.h +23 -3
- data/ext/common/UnionStation.h +972 -0
- data/ext/common/Utils.cpp +168 -24
- data/ext/common/Utils.h +25 -3
- data/ext/common/Utils/CachedFileStat.hpp +4 -3
- data/ext/common/Utils/FileChangeChecker.h +2 -2
- data/ext/common/Utils/HashMap.h +50 -0
- data/ext/common/Utils/IOUtils.cpp +229 -68
- data/ext/common/Utils/IOUtils.h +134 -3
- data/ext/common/Utils/Lock.h +28 -0
- data/ext/common/Utils/MemoryBarrier.h +52 -0
- data/ext/common/Utils/PriorityQueue.h +54 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +9 -11
- data/ext/common/Utils/ScopeGuard.h +50 -1
- data/ext/common/Utils/SmallVector.h +653 -0
- data/ext/common/Utils/StrIntUtils.cpp +26 -2
- data/ext/common/Utils/StrIntUtils.h +18 -2
- data/ext/common/Utils/StringMap.h +125 -8
- data/ext/common/Utils/Template.h +212 -0
- data/ext/common/Utils/fib.c +699 -0
- data/ext/common/Utils/fib.h +101 -0
- data/ext/common/Utils/fibpriv.h +67 -0
- data/ext/common/Utils/json-forwards.h +249 -0
- data/ext/common/Utils/json.h +1855 -0
- data/ext/common/Utils/jsoncpp.cpp +4230 -0
- data/ext/common/agents/Base.cpp +1126 -0
- data/ext/common/{AgentBase.h → agents/Base.h} +5 -1
- data/ext/common/agents/EnvPrinter.c +16 -0
- data/ext/common/agents/HelperAgent/AgentOptions.h +81 -0
- data/ext/common/{HelperAgent → agents/HelperAgent}/BacktracesServer.h +3 -2
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +732 -0
- data/ext/common/agents/HelperAgent/Main.cpp +497 -0
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +283 -0
- data/ext/common/agents/HelperAgent/RequestHandler.h +2139 -0
- data/ext/common/agents/HelperAgent/ScgiRequestParser.h +451 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/DataStoreId.h +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.cpp +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.h +0 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/LoggingServer.h +18 -16
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/Main.cpp +15 -13
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/RemoteSender.h +6 -6
- data/ext/common/agents/SpawnPreparer.cpp +127 -0
- data/ext/common/{Watchdog.cpp → agents/Watchdog/Main.cpp} +63 -25
- data/ext/libeio/Changes +72 -0
- data/ext/{google/COPYING → libeio/LICENSE} +17 -9
- data/ext/libeio/Makefile.am +15 -0
- data/ext/libeio/Makefile.in +694 -0
- data/ext/libeio/aclocal.m4 +9418 -0
- data/ext/libeio/autogen.sh +3 -0
- data/ext/libeio/config.guess +1501 -0
- data/ext/libeio/config.h.in +136 -0
- data/ext/libeio/config.sub +1705 -0
- data/ext/libeio/configure +14822 -0
- data/ext/libeio/configure.ac +22 -0
- data/ext/libeio/demo.c +194 -0
- data/ext/libeio/ecb.h +457 -0
- data/ext/libeio/eio.c +2816 -0
- data/ext/libeio/eio.h +411 -0
- data/ext/libeio/install-sh +520 -0
- data/ext/libeio/libeio.m4 +211 -0
- data/ext/libeio/ltmain.sh +9636 -0
- data/ext/libeio/missing +376 -0
- data/ext/libeio/xthread.h +166 -0
- data/ext/libev/Changes +125 -7
- data/ext/libev/Makefile.am +5 -3
- data/ext/libev/Makefile.in +209 -120
- data/ext/libev/aclocal.m4 +6027 -4619
- data/ext/libev/autogen.sh +1 -4
- data/ext/libev/config.h.in +11 -7
- data/ext/libev/configure +7312 -14993
- data/ext/libev/configure.ac +12 -5
- data/ext/libev/depcomp +630 -0
- data/ext/libev/ev++.h +48 -32
- data/ext/libev/ev.c +1173 -391
- data/ext/libev/ev.h +315 -181
- data/ext/libev/ev_epoll.c +66 -15
- data/ext/libev/ev_kqueue.c +20 -18
- data/ext/libev/ev_poll.c +27 -23
- data/ext/libev/ev_port.c +39 -19
- data/ext/libev/ev_select.c +23 -17
- data/ext/libev/ev_vars.h +25 -8
- data/ext/libev/ev_win32.c +6 -6
- data/ext/libev/ev_wrap.h +22 -2
- data/ext/libev/event.c +18 -17
- data/ext/libev/event.h +16 -4
- data/ext/libev/libev.m4 +10 -6
- data/ext/libev/ltmain.sh +7353 -5811
- data/ext/nginx/Configuration.c +74 -42
- data/ext/nginx/Configuration.h +3 -5
- data/ext/nginx/ContentHandler.c +26 -83
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/config +13 -9
- data/ext/nginx/ngx_http_passenger_module.c +3 -7
- data/ext/oxt/detail/backtrace_enabled.hpp +5 -102
- data/ext/oxt/detail/context.hpp +90 -0
- data/ext/oxt/detail/spin_lock_darwin.hpp +4 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +4 -0
- data/ext/oxt/detail/spin_lock_pthreads.hpp +14 -0
- data/ext/oxt/detail/tracable_exception_enabled.hpp +2 -2
- data/ext/oxt/dynamic_thread_group.hpp +27 -1
- data/ext/oxt/implementation.cpp +415 -0
- data/ext/oxt/{thread.cpp → initialize.hpp} +13 -6
- data/ext/oxt/macros.hpp +32 -1
- data/ext/oxt/spin_lock.hpp +6 -11
- data/ext/oxt/system_calls.cpp +204 -16
- data/ext/oxt/system_calls.hpp +85 -45
- data/ext/oxt/thread.hpp +13 -117
- data/ext/ruby/passenger_native_support.c +82 -237
- data/helper-scripts/backtrace-sanitizer.rb +114 -0
- data/helper-scripts/classic-rails-loader.rb +135 -0
- data/helper-scripts/classic-rails-preloader.rb +161 -0
- data/helper-scripts/node-loader.js +314 -0
- data/helper-scripts/rack-loader.rb +104 -0
- data/helper-scripts/rack-preloader.rb +132 -0
- data/helper-scripts/wsgi-loader.py +231 -0
- data/helper-scripts/wsgi-preloader.py +1 -0
- data/lib/phusion_passenger.rb +159 -61
- data/lib/phusion_passenger/abstract_installer.rb +182 -87
- data/lib/phusion_passenger/admin_tools/server_instance.rb +25 -19
- data/lib/phusion_passenger/analytics_logger.rb +5 -4
- data/lib/phusion_passenger/classic_rails/{request_handler.rb → thread_handler_extension.rb} +4 -40
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +5 -3
- data/lib/phusion_passenger/common_library.rb +441 -0
- data/lib/phusion_passenger/console_text_template.rb +4 -16
- data/lib/phusion_passenger/constants.rb +1 -8
- data/lib/phusion_passenger/debug_logging.rb +5 -2
- data/lib/phusion_passenger/dependencies.rb +51 -13
- data/lib/phusion_passenger/loader_shared_helpers.rb +318 -0
- data/lib/phusion_passenger/message_channel.rb +3 -47
- data/lib/phusion_passenger/message_client.rb +2 -2
- data/lib/phusion_passenger/native_support.rb +36 -15
- data/lib/phusion_passenger/packaging.rb +8 -11
- data/lib/phusion_passenger/platform_info.rb +25 -17
- data/lib/phusion_passenger/platform_info/apache.rb +10 -7
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +10 -30
- data/lib/phusion_passenger/platform_info/compiler.rb +93 -34
- data/lib/phusion_passenger/platform_info/ruby.rb +37 -97
- data/lib/phusion_passenger/preloader_shared_helpers.rb +121 -0
- data/lib/phusion_passenger/public_api.rb +1 -4
- data/lib/phusion_passenger/rack/{request_handler.rb → thread_handler_extension.rb} +14 -63
- data/lib/phusion_passenger/rails3_extensions/init.rb +9 -8
- data/lib/phusion_passenger/request_handler.rb +500 -0
- data/lib/phusion_passenger/request_handler/thread_handler.rb +360 -0
- data/lib/phusion_passenger/ruby_core_enhancements.rb +142 -0
- data/lib/phusion_passenger/standalone/command.rb +36 -15
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +16 -8
- data/lib/phusion_passenger/standalone/runtime_installer.rb +169 -72
- data/lib/phusion_passenger/standalone/start_command.rb +44 -39
- data/lib/phusion_passenger/standalone/utils.rb +5 -5
- data/lib/phusion_passenger/utils.rb +35 -914
- data/lib/phusion_passenger/utils/ansi_colors.rb +59 -0
- data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/lib/phusion_passenger/utils/robust_interruption.rb +134 -0
- data/lib/phusion_passenger/utils/tee_input.rb +174 -0
- data/lib/phusion_passenger/utils/tmpio.rb +33 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +6 -0
- data/resources/mime.types +5 -1
- data/{lib/phusion_passenger/templates → resources}/standalone_default_root/index.html +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/deployment_example.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/error_layout.css +6 -0
- data/resources/templates/error_layout.html.template +89 -0
- data/resources/templates/general_error.html.template +1 -0
- data/resources/templates/general_error_with_html.html.template +1 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/ask_for_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets_inserted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/confirm_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/deployment_example.txt.erb +0 -0
- data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +8 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_downloaded.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_extracted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/query_download_and_install.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/config.erb +26 -5
- data/{lib/phusion_passenger → resources}/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/welcome.txt.erb +0 -0
- data/resources/templates/undisclosed_error.html.template +25 -0
- data/test/config.json.example +42 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +86 -0
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +44 -0
- data/test/cxx/ApplicationPool2/PoolTest.cpp +1234 -0
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +131 -0
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +229 -0
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +744 -0
- data/test/cxx/BufferedIOTest.cpp +7 -7
- data/test/cxx/CxxTestMain.cpp +65 -2
- data/test/cxx/FileBackedPipeTest.cpp +626 -0
- data/test/cxx/FileChangeCheckerTest.cpp +20 -18
- data/test/cxx/FilterSupportTest.cpp +5 -5
- data/test/cxx/IOUtilsTest.cpp +11 -4
- data/test/cxx/MessageReadersWritersTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +31 -30
- data/test/cxx/RequestHandlerTest.cpp +777 -0
- data/test/cxx/ScgiRequestParserTest.cpp +36 -16
- data/test/cxx/ServerInstanceDirTest.cpp +1 -1
- data/test/cxx/StringMapTest.cpp +61 -0
- data/test/cxx/TemplateTest.cpp +118 -0
- data/test/cxx/TestSupport.cpp +25 -68
- data/test/cxx/TestSupport.h +81 -41
- data/test/cxx/{LoggingTest.cpp → UnionStationTest.cpp} +79 -74
- data/test/cxx/UtilsTest.cpp +59 -5
- data/test/integration_tests/apache2_tests.rb +2 -2
- data/test/integration_tests/nginx_tests.rb +1 -1
- data/test/integration_tests/spec_helper.rb +7 -5
- data/test/oxt/oxt_test_main.cpp +2 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -0
- data/test/ruby/classic_rails/loader_spec.rb +48 -0
- data/test/ruby/classic_rails/preloader_spec.rb +54 -0
- data/test/ruby/rack/loader_spec.rb +62 -0
- data/test/ruby/rack/preloader_spec.rb +74 -0
- data/test/ruby/{abstract_request_handler_spec.rb → request_handler_spec.rb} +31 -68
- data/test/ruby/shared/loader_spec.rb +241 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +141 -182
- data/test/ruby/shared/ruby_loader_spec.rb +55 -0
- data/test/ruby/spec_helper.rb +8 -53
- data/test/ruby/utils/file_system_watcher_spec.rb +9 -1
- data/test/ruby/utils_spec.rb +10 -683
- data/test/stub/rack/config.ru +28 -3
- data/test/stub/rack/start.rb +47 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/Rakefile +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/application_controller.rb +0 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/database.yml +3 -3
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environment.rb +5 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/staging.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/routes.rb +1 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/about +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/console +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/dbconsole +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/destroy +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/generate +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/benchmarker +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/profiler +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/request +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/plugin +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/inspector +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/reaper +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/spawner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/runner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/server +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Gemfile +0 -0
- data/test/stub/rails3.0/Gemfile.lock +80 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Rakefile +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/controllers/application_controller.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/views/layouts/application.html.erb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config.ru +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/application.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/database.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environment.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/backtrace_silencers.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/passenger.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/secret_token.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/session_store.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/locales/en.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/routes.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/db/seeds.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/doc/README_FOR_APP +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/404.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/422.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/500.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/favicon.ico +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/index.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/robots.txt +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/script/rails +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/performance/browsing_test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/test_helper.rb +0 -0
- data/test/stub/start_error.pl +24 -0
- data/test/stub/wsgi/passenger_wsgi.py +71 -3
- data/test/support/apache2_controller.rb +2 -2
- data/test/support/placebo-preloader.rb +88 -0
- data/test/support/test_helper.rb +1 -14
- data/test/tut/tut.h +11 -4
- metadata +590 -326
- data.tar.gz.asc +0 -12
- data/PACKAGING.TXT +0 -25
- data/build/config.rb +0 -46
- data/ext/apache2/HelperAgent.cpp +0 -364
- data/ext/boost/call_traits.hpp +0 -24
- data/ext/boost/detail/call_traits.hpp +0 -164
- data/ext/common/AbstractSpawnManager.h +0 -110
- data/ext/common/AgentBase.cpp +0 -432
- data/ext/common/ApplicationPool/Client.h +0 -788
- data/ext/common/ApplicationPool/Interface.h +0 -295
- data/ext/common/ApplicationPool/Pool.h +0 -1327
- data/ext/common/ApplicationPool/Server.h +0 -479
- data/ext/common/MessageChannel.h +0 -494
- data/ext/common/PoolOptions.h +0 -518
- data/ext/common/Process.h +0 -253
- data/ext/common/Session.h +0 -436
- data/ext/common/SpawnManager.h +0 -611
- data/ext/google/ChangeLog +0 -167
- data/ext/google/dense_hash_map +0 -310
- data/ext/google/dense_hash_set +0 -287
- data/ext/google/sparse_hash_map +0 -294
- data/ext/google/sparse_hash_set +0 -275
- data/ext/google/sparsehash/densehashtable.h +0 -1062
- data/ext/google/sparsehash/sparseconfig.h +0 -55
- data/ext/google/sparsehash/sparsehashtable.h +0 -1015
- data/ext/google/sparsetable +0 -1468
- data/ext/google/type_traits.h +0 -250
- data/ext/nginx/HelperAgent.cpp +0 -1355
- data/ext/nginx/ScgiRequestParser.h +0 -375
- data/ext/oxt/backtrace.cpp +0 -185
- data/ext/oxt/tracable_exception.cpp +0 -89
- data/helper-scripts/passenger-spawn-server +0 -106
- data/lib/phusion_passenger/abstract_request_handler.rb +0 -766
- data/lib/phusion_passenger/abstract_server.rb +0 -372
- data/lib/phusion_passenger/abstract_server_collection.rb +0 -335
- data/lib/phusion_passenger/app_process.rb +0 -174
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +0 -344
- data/lib/phusion_passenger/classic_rails/framework_spawner.rb +0 -311
- data/lib/phusion_passenger/exceptions.rb +0 -103
- data/lib/phusion_passenger/html_template.rb +0 -107
- data/lib/phusion_passenger/rack/application_spawner.rb +0 -231
- data/lib/phusion_passenger/spawn_manager.rb +0 -359
- data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +0 -38
- data/lib/phusion_passenger/templates/app_init_error.html.erb +0 -64
- data/lib/phusion_passenger/templates/database_error.html.erb +0 -66
- data/lib/phusion_passenger/templates/error_layout.html.erb +0 -39
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +0 -39
- data/lib/phusion_passenger/templates/general_error.html.erb +0 -22
- data/lib/phusion_passenger/templates/load_error.html.erb +0 -46
- data/lib/phusion_passenger/templates/version_not_found.html.erb +0 -34
- data/lib/phusion_passenger/utils/rewindable_input.rb +0 -125
- data/lib/phusion_passenger/wsgi/application_spawner.rb +0 -108
- data/test/config.yml.example +0 -41
- data/test/cxx/ApplicationPool_PoolTest.cpp +0 -33
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +0 -1029
- data/test/cxx/ApplicationPool_ServerTest.cpp +0 -308
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +0 -80
- data/test/cxx/MessageChannelTest.cpp +0 -557
- data/test/cxx/PoolOptionsTest.cpp +0 -116
- data/test/cxx/SpawnManagerTest.cpp +0 -161
- data/test/ruby/abstract_server_collection_spec.rb +0 -247
- data/test/ruby/abstract_server_spec.rb +0 -61
- data/test/ruby/app_process_spec.rb +0 -43
- data/test/ruby/classic_rails/application_spawner_spec.rb +0 -89
- data/test/ruby/classic_rails/framework_spawner_spec.rb +0 -92
- data/test/ruby/rack/application_spawner_spec.rb +0 -116
- data/test/ruby/shared/abstract_server_spec.rb +0 -23
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +0 -38
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +0 -19
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +0 -15
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +0 -27
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +0 -29
- data/test/ruby/shared/spawners/reload_all_spec.rb +0 -36
- data/test/ruby/shared/spawners/reload_single_spec.rb +0 -52
- data/test/ruby/shared/spawners/spawn_server_spec.rb +0 -28
- data/test/ruby/shared/spawners/spawner_spec.rb +0 -273
- data/test/ruby/shared/utils/pseudo_io_spec.rb +0 -60
- data/test/ruby/spawn_manager_spec.rb +0 -134
- data/test/ruby/wsgi/application_spawner_spec.rb +0 -50
- data/test/stub/message_channel.rb +0 -11
- data/test/stub/message_channel_2.rb +0 -12
- data/test/stub/message_channel_3.rb +0 -19
- data/test/stub/rails_apps/3.0/empty/Gemfile.lock +0 -73
- data/test/stub/spawn_server.rb +0 -22
- metadata.gz.asc +0 -12
@@ -18,6 +18,51 @@
|
|
18
18
|
|
19
19
|
1.2. Where to get support => where-to-get-support-2s9na5
|
20
20
|
|
21
|
+
# fuzzy
|
22
|
+
10. Appendix A: About this document => appendix-a-about-this-document-zfvixm
|
23
|
+
|
24
|
+
# fuzzy
|
25
|
+
11. Appendix B: Terminology => appendix-b-terminology-wzv5ro
|
26
|
+
|
27
|
+
# fuzzy
|
28
|
+
11.1. Application root => application-root-1fd6bqv
|
29
|
+
|
30
|
+
# fuzzy
|
31
|
+
11.2. Idle process => idle-process-13byfw9
|
32
|
+
|
33
|
+
# fuzzy
|
34
|
+
11.3. Inactive process => inactive-process-1d2h0po
|
35
|
+
|
36
|
+
# fuzzy
|
37
|
+
12. Appendix C: Spawning methods explained => appendix-c-spawning-methods-explained-tcp8e6
|
38
|
+
|
39
|
+
# fuzzy
|
40
|
+
12.1. The most straightforward and traditional way: direct spawning => the-most-straightforward-and-traditional-way-conservative-spawning-civ29z
|
41
|
+
|
42
|
+
# fuzzy
|
43
|
+
12.2. The smart spawning method => the-smart-spawning-method-7nhgtj
|
44
|
+
|
45
|
+
# fuzzy
|
46
|
+
12.2.1. How it works => how-it-works-f9umga
|
47
|
+
|
48
|
+
# fuzzy
|
49
|
+
12.2.2. Summary of benefits => summary-of-benefits-qovyvk
|
50
|
+
|
51
|
+
# fuzzy
|
52
|
+
12.3. Smart spawning gotcha #1: unintentional file descriptor sharing => smart-spawning-gotcha-1-unintentional-file-descriptor-sharing-cebw6q
|
53
|
+
|
54
|
+
# fuzzy
|
55
|
+
12.3.1. Example 1: Memcached connection sharing (harmful) => example-1-memcached-connection-sharing-harmful--1wfs3ad
|
56
|
+
|
57
|
+
# fuzzy
|
58
|
+
12.3.2. Example 2: Log file sharing (not harmful) => example-2-log-file-sharing-not-harmful--ox4yfy
|
59
|
+
|
60
|
+
# fuzzy
|
61
|
+
12.4. Smart spawning gotcha #2: the need to revive threads => smart-spawning-gotcha-2-the-need-to-revive-threads-1ey176o
|
62
|
+
|
63
|
+
# fuzzy
|
64
|
+
12.5. Smart spawning gotcha #3: code load order => smart-spawning-gotcha-3-code-load-order-12ydsn8
|
65
|
+
|
21
66
|
2. Installing Phusion Passenger => installing-phusion-passenger-hn03ac
|
22
67
|
|
23
68
|
2.1. Overview => overview-kvhzi4
|
@@ -74,163 +119,206 @@
|
|
74
119
|
|
75
120
|
4.5.6. Sinatra => sinatra-a7u9ag
|
76
121
|
|
77
|
-
5.
|
78
|
-
|
79
|
-
5.1. passenger_root <directory> => passenger-root-directory--bqvhhz
|
80
|
-
|
81
|
-
5.2. passenger_ruby <filename> => passenger-ruby-filename--1gnok5k
|
82
|
-
|
83
|
-
5.3. passenger_spawn_method <string> => passenger-spawn-method-string--1sc6njl
|
84
|
-
|
85
|
-
5.4. passenger_rolling_restarts <on|off> => passenger-rolling-restarts
|
86
|
-
|
87
|
-
5.5. passenger_resist_deployment_errors <on|off> => passenger-resist-deployment-errors-on-off--k9yf1
|
88
|
-
|
89
|
-
5.6. Important deployment options => important-deployment-options-av567
|
90
|
-
|
91
|
-
5.6.1. passenger_enabled <on|off> => passenger-enabled-on-off--1rpb2t7
|
92
|
-
|
93
|
-
5.6.2. passenger_base_uri <uri> => passenger-base-uri-uri--1xtuo50
|
94
|
-
|
95
|
-
5.7. Connection handling options => connection-handling-options-8jgq90
|
96
|
-
|
97
|
-
5.7.1. passenger_use_global_queue <on|off> => passenger-use-global-queue-on-off--14h9n22
|
98
|
-
|
99
|
-
5.7.2. passenger_ignore_client_abort <on|off> => passenger-ignore-client-abort
|
122
|
+
5. Deploying a WSGI (Python) application => deploying-a-wsgi-python-application-1or2efo
|
100
123
|
|
101
|
-
5.
|
124
|
+
5.1. Tutorial/example: writing and deploying a Hello World WSGI application => tutorial-example-writing-and-deploying-a-hello-world-wsgi-application-k5ron2
|
102
125
|
|
103
|
-
5.
|
126
|
+
5.2. Deploying to a virtual host’s root => deploying-to-a-virtual-host-s-root-1chcpbj
|
104
127
|
|
105
|
-
5.
|
128
|
+
5.3. Redeploying (restarting the WSGI application) => redeploying-restarting-the-wsgi-application--10zdh2k
|
106
129
|
|
107
|
-
|
130
|
+
# fuzzy
|
131
|
+
6. Configuring Phusion Passenger => configuring-phusion-passenger-1g1svey
|
108
132
|
|
109
|
-
|
133
|
+
# fuzzy
|
134
|
+
6.1. passenger_root <directory> => passenger-root-directory--bqvhhz
|
110
135
|
|
111
|
-
|
136
|
+
# fuzzy
|
137
|
+
6.10. Logging and debugging options => logging-and-debugging-options-14e91ni
|
112
138
|
|
113
|
-
|
139
|
+
# fuzzy
|
140
|
+
6.10.1. passenger_log_level <integer> => passenger-log-level-integer--17snhon
|
114
141
|
|
115
|
-
|
142
|
+
# fuzzy
|
143
|
+
6.10.2. passenger_debug_log_file <filename> => passenger-debug-log-file-filename--21ubaj
|
116
144
|
|
117
|
-
|
145
|
+
# fuzzy
|
146
|
+
6.10.3. passenger_debugger <on|off> => passenger-debugger-on-off--1wkuq85
|
118
147
|
|
119
|
-
|
148
|
+
# fuzzy
|
149
|
+
6.11. Ruby on Rails-specific options => ruby-on-rails-specific-options-12vfokt
|
120
150
|
|
121
|
-
|
151
|
+
# fuzzy
|
152
|
+
6.11.1. rails_env <string> => rails-env-string--jlh7v9
|
122
153
|
|
123
|
-
|
154
|
+
# fuzzy
|
155
|
+
6.12. Rack and Rails >= 3 specific options => rack-specific-options-13yvdxs
|
124
156
|
|
125
|
-
|
157
|
+
# fuzzy
|
158
|
+
6.12.1. rack_env <string> => rack-env-string--tqmrt0
|
126
159
|
|
127
|
-
|
160
|
+
# fuzzy
|
161
|
+
6.13. Deprecated options => deprecated-options-1dtzo0g
|
128
162
|
|
129
|
-
|
163
|
+
# fuzzy
|
164
|
+
6.13.1. rails_spawn_method => rails-spawn-method-17vdnpt
|
130
165
|
|
131
|
-
|
166
|
+
# fuzzy
|
167
|
+
6.2. passenger_ruby <filename> => passenger-ruby-filename--1gnok5k
|
132
168
|
|
133
|
-
|
169
|
+
# fuzzy
|
170
|
+
6.3. passenger_spawn_method <string> => passenger-spawn-method-string--1sc6njl
|
134
171
|
|
135
|
-
|
172
|
+
# fuzzy
|
173
|
+
6.4. passenger_rolling_restarts <on|off> => passenger-rolling-restarts
|
136
174
|
|
137
|
-
|
175
|
+
# fuzzy
|
176
|
+
6.5. passenger_resist_deployment_errors <on|off> => passenger-resist-deployment-errors-on-off--k9yf1
|
138
177
|
|
139
|
-
|
178
|
+
# fuzzy
|
179
|
+
6.6. Important deployment options => important-deployment-options-av567
|
140
180
|
|
141
|
-
|
181
|
+
# fuzzy
|
182
|
+
6.6.1. passenger_enabled <on|off> => passenger-enabled-on-off--1rpb2t7
|
142
183
|
|
143
|
-
|
184
|
+
# fuzzy
|
185
|
+
6.6.2. passenger_base_uri <uri> => passenger-base-uri-uri--1xtuo50
|
144
186
|
|
145
|
-
|
187
|
+
# fuzzy
|
188
|
+
6.7. Connection handling options => connection-handling-options-8jgq90
|
146
189
|
|
147
|
-
|
190
|
+
# fuzzy
|
191
|
+
6.7.1. passenger_ignore_client_abort <on|off> => passenger-ignore-client-abort
|
148
192
|
|
149
|
-
|
193
|
+
# fuzzy
|
194
|
+
6.7.2. passenger_set_cgi_param <CGI environment name> <value> => passenger-set-cgi-param-cgi-environment-name-value--rx9gc0
|
150
195
|
|
151
|
-
|
196
|
+
# fuzzy
|
197
|
+
6.7.3. passenger_pass_header <header name> => passenger-pass-header-header-name--1cg31je
|
152
198
|
|
153
|
-
|
199
|
+
# fuzzy
|
200
|
+
6.7.4. passenger_buffer_response <on|off> => passenger-buffer-response
|
154
201
|
|
155
|
-
|
202
|
+
# fuzzy
|
203
|
+
6.7.5. passenger_buffer_size => passenger-buffer-size-1jfkq87
|
156
204
|
|
157
|
-
|
205
|
+
# fuzzy
|
206
|
+
6.7.6. passenger_buffers => passenger-busy-buffers
|
158
207
|
|
159
|
-
|
208
|
+
# fuzzy
|
209
|
+
6.7.7. passenger_busy_buffer_size => passenger-busy-buffer-size-124sj61
|
160
210
|
|
161
|
-
|
211
|
+
# fuzzy
|
212
|
+
6.8. Security options => security-options-1bv93g4
|
162
213
|
|
163
|
-
|
214
|
+
# fuzzy
|
215
|
+
6.8.1. passenger_user_switching <on|off> => passenger-user-switching-on-off--1p37u3l
|
164
216
|
|
165
|
-
|
217
|
+
# fuzzy
|
218
|
+
6.8.2. passenger_user <username> => passenger-user-username--b06ur7
|
166
219
|
|
167
|
-
|
220
|
+
# fuzzy
|
221
|
+
6.8.3. passenger_group <group name> => passenger-user-group-name--1fco4j7
|
168
222
|
|
169
|
-
|
223
|
+
# fuzzy
|
224
|
+
6.8.4. passenger_default_user <username> => passenger-default-user-username--1h6cdmf
|
170
225
|
|
171
|
-
|
226
|
+
# fuzzy
|
227
|
+
6.8.5. Passenger_default_group <group name> => passenger-default-group-group-name--1qxn2qa
|
172
228
|
|
173
|
-
|
229
|
+
# fuzzy
|
230
|
+
6.8.6. passenger_friendly_error_pages <on|off> => passenger-friendly-error-pages-on-off--1ti1a0e
|
174
231
|
|
175
|
-
|
232
|
+
# fuzzy
|
233
|
+
6.9. Resource control and optimization options => resource-control-and-optimization-options-xd7evs
|
176
234
|
|
177
|
-
|
235
|
+
# fuzzy
|
236
|
+
6.9.1. passenger_max_pool_size <integer> => passenger-max-pool-size-integer--3jzefs
|
178
237
|
|
179
|
-
|
238
|
+
# fuzzy
|
239
|
+
6.9.10. passenger_max_request_time <seconds> => passenger-pre-start-url--1f2phk7
|
180
240
|
|
181
|
-
|
241
|
+
# fuzzy
|
242
|
+
6.9.11. passenger_memory_limit <integer> => passenger-memory-limit-integer--1ry7dwx
|
182
243
|
|
183
|
-
|
244
|
+
# fuzzy
|
245
|
+
6.9.12. passenger_pre_start <url> => passenger-pre-start-url--npldeb
|
184
246
|
|
185
|
-
|
247
|
+
# fuzzy
|
248
|
+
6.9.2. passenger_min_instances <integer> => passenger-min-instances-integer--uclykt
|
186
249
|
|
187
|
-
|
250
|
+
# fuzzy
|
251
|
+
6.9.3. passenger_max_instances <integer> => passenger-max-instances
|
188
252
|
|
189
|
-
|
253
|
+
# fuzzy
|
254
|
+
6.9.4. passenger_max_instances_per_app <integer> => passenger-max-instances-per-app-integer--1xhbbne
|
190
255
|
|
191
|
-
|
256
|
+
# fuzzy
|
257
|
+
6.9.5. passenger_pool_idle_time <integer> => passenger-pool-idle-time-integer--xcw65o
|
192
258
|
|
193
|
-
|
259
|
+
# fuzzy
|
260
|
+
6.9.6. passenger_max_preloader_idle_time <integer> => rails-app-spawner-idle-time-integer--1xjqe4b
|
194
261
|
|
195
|
-
|
262
|
+
# fuzzy
|
263
|
+
6.9.7. passenger_concurrency_model <process|thread> => passenger-max-requests
|
196
264
|
|
197
|
-
|
265
|
+
# fuzzy
|
266
|
+
6.9.8. passenger_thread_count <number> => passenger-max-request-time-seconds--1qod9kg
|
198
267
|
|
199
|
-
|
268
|
+
# fuzzy
|
269
|
+
6.9.9. passenger_max_requests <integer> => passenger-max-requests-integer--sgzint
|
200
270
|
|
201
|
-
|
271
|
+
# fuzzy
|
272
|
+
7. Analysis and system maintenance => analysis-and-system-maintenance-1nnlnj8
|
202
273
|
|
203
|
-
|
274
|
+
# fuzzy
|
275
|
+
7.1. Inspecting memory usage => inspecting-memory-usage-1k6y8v0
|
204
276
|
|
205
|
-
|
277
|
+
# fuzzy
|
278
|
+
7.2. Inspecting Phusion Passenger’s internal status => inspecting-phusion-passenger-s-internal-status-v36wbc
|
206
279
|
|
207
|
-
|
280
|
+
# fuzzy
|
281
|
+
7.3. Debugging frozen applications => debugging-frozen-applications-qoctl8
|
208
282
|
|
209
|
-
|
283
|
+
# fuzzy
|
284
|
+
7.4. Accessing individual application processes => accessing-individual-application-processes-1qe4fqk
|
210
285
|
|
211
|
-
|
286
|
+
# fuzzy
|
287
|
+
7.5. Attaching an IRB console to an application process => attaching-an-irb-console-to-an-application-process-d36enw
|
212
288
|
|
213
|
-
|
289
|
+
# fuzzy
|
290
|
+
8. Tips => tips-n4c22d
|
214
291
|
|
215
|
-
|
292
|
+
# fuzzy
|
293
|
+
8.1. User switching (security) => user-switching-security--zmsy9o
|
216
294
|
|
217
|
-
|
295
|
+
# fuzzy
|
296
|
+
8.2. Reducing memory consumption of Ruby on Rails applications by 33% => reducing-memory-consumption-of-ruby-on-rails-applications-by-33--1o3z66q
|
218
297
|
|
219
|
-
|
298
|
+
# fuzzy
|
299
|
+
8.3. Capistrano recipe => capistrano-recipe-pfn4qu
|
220
300
|
|
221
|
-
|
301
|
+
# fuzzy
|
302
|
+
8.4. Bundler support => bundler-support-19v1h43
|
222
303
|
|
223
|
-
|
304
|
+
# fuzzy
|
305
|
+
8.5. Moving Phusion Passenger to a different directory => moving-phusion-passenger-to-a-different-directory-1hel5cp
|
224
306
|
|
225
|
-
|
307
|
+
# fuzzy
|
308
|
+
8.6. Installing multiple Ruby on Rails versions => installing-multiple-ruby-on-rails-versions-1bp1fff
|
226
309
|
|
227
|
-
|
310
|
+
# fuzzy
|
311
|
+
8.7. Making the application restart after each request => making-the-application-restart-after-each-request-vimy48
|
228
312
|
|
229
|
-
|
313
|
+
# fuzzy
|
314
|
+
8.8. 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
|
230
315
|
|
231
|
-
|
316
|
+
# fuzzy
|
317
|
+
9. Under the hood => under-the-hood-8uney
|
232
318
|
|
233
|
-
|
319
|
+
# fuzzy
|
320
|
+
9.1. Page caching support => page-caching-support-nafhf6
|
234
321
|
|
235
|
-
|
322
|
+
# fuzzy
|
323
|
+
9.2. 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
|
236
324
|
|
data/doc/Users guide Nginx.txt
CHANGED
@@ -2,45 +2,24 @@
|
|
2
2
|
|
3
3
|
image:images/phusion_banner.png[link="http://www.phusion.nl/"]
|
4
4
|
|
5
|
-
Phusion Passenger is an Nginx
|
6
|
-
|
7
|
-
|
8
|
-
same time providing enough flexibility.
|
5
|
+
Phusion Passenger is an application server which can directly integrate into Nginx. It is designed to be easy to use, fast, stable and reliable and is used by link:http://trends.builtwith.com/Web-Server/Phusion-Passenger[hundreds of thousands of websites] all over the world.
|
6
|
+
|
7
|
+
Phusion Passenger is a so-called polyglot application server because it supports applications written in multiple programming languages. At this time, Ruby and Python are supported.
|
9
8
|
|
10
9
|
This users guide will teach you:
|
11
10
|
|
12
11
|
- How to install Nginx with Phusion Passenger support.
|
13
12
|
- How to configure Phusion Passenger.
|
14
|
-
- How to deploy
|
15
|
-
- How to deploy a link:http://rack.rubyforge.org/[Rack]-based Ruby application.
|
13
|
+
- How to deploy Ruby and Python applications.
|
16
14
|
- How to solve common problems.
|
17
15
|
|
18
16
|
This guide assumes that the reader is somewhat familiar with Nginx and with
|
19
|
-
using the
|
17
|
+
using the command line.
|
20
18
|
|
21
19
|
|
22
20
|
== Support information ==
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
Phusion Passenger works on any POSIX-compliant operating system. In other
|
27
|
-
words: practically any operating system on earth, except Microsoft Windows.
|
28
|
-
|
29
|
-
Phusion Passenger is confirmed on a large number of operating systems and Linux
|
30
|
-
distributions, including, but not limited to, Ubuntu, Debian, CentOS/Fedora/RHEL,
|
31
|
-
Gentoo, Mac OS X, FreeBSD and Solaris. Both 32-bit and 64-bit platforms are supported.
|
32
|
-
Please
|
33
|
-
link:http://code.google.com/p/phusion-passenger/issues/list[report a bug]
|
34
|
-
or
|
35
|
-
link:http://groups.google.com/group/phusion-passenger[join our discussion forum]
|
36
|
-
if it doesn't work on your POSIX-compliant operating system.
|
37
|
-
|
38
|
-
=== Where to get support ===
|
39
|
-
|
40
|
-
* link:http://code.google.com/p/phusion-passenger/issues/list[Issue tracker] - report
|
41
|
-
bugs here.
|
42
|
-
* link:http://groups.google.com/group/phusion-passenger[Discussion forum] - post a
|
43
|
-
message here if you're experiencing problems.
|
22
|
+
include::users_guide_snippets/support_information.txt[]
|
44
23
|
|
45
24
|
|
46
25
|
== Installing Phusion Passenger ==
|
@@ -221,15 +200,14 @@ http {
|
|
221
200
|
passenger_root /somewhere/passenger-x.x.x;
|
222
201
|
passenger_ruby /usr/bin/ruby;
|
223
202
|
passenger_max_pool_size 10;
|
224
|
-
|
203
|
+
|
225
204
|
gzip on;
|
226
|
-
|
205
|
+
|
227
206
|
server {
|
228
207
|
server_name www.foo.com;
|
229
208
|
listen 80;
|
230
209
|
root /webapps/foo/public;
|
231
210
|
passenger_enabled on;
|
232
|
-
passenger_use_global_queue on;
|
233
211
|
}
|
234
212
|
}
|
235
213
|
-----------------------------------
|
@@ -243,9 +221,9 @@ http {
|
|
243
221
|
# passenger_root /somewhere/passenger-x.x.x;
|
244
222
|
# passenger_ruby /usr/bin/ruby;
|
245
223
|
# passenger_max_pool_size 10;
|
246
|
-
|
224
|
+
|
247
225
|
gzip on;
|
248
|
-
|
226
|
+
|
249
227
|
server {
|
250
228
|
server_name www.foo.com;
|
251
229
|
listen 80;
|
@@ -299,14 +277,14 @@ For example:
|
|
299
277
|
-------------------------------------------
|
300
278
|
http {
|
301
279
|
...
|
302
|
-
|
280
|
+
|
303
281
|
server {
|
304
282
|
listen 80;
|
305
283
|
server_name www.mycook.com;
|
306
284
|
root /webapps/mycook/public;
|
307
285
|
passenger_enabled on;
|
308
286
|
}
|
309
|
-
|
287
|
+
|
310
288
|
...
|
311
289
|
}
|
312
290
|
-------------------------------------------
|
@@ -320,13 +298,13 @@ Suppose that you already have a 'server' virtual host entry:
|
|
320
298
|
-------------------------------------------
|
321
299
|
http {
|
322
300
|
...
|
323
|
-
|
301
|
+
|
324
302
|
server {
|
325
303
|
listen 80;
|
326
304
|
server_name www.phusion.nl;
|
327
305
|
root /websites/phusion;
|
328
306
|
}
|
329
|
-
|
307
|
+
|
330
308
|
...
|
331
309
|
}
|
332
310
|
-------------------------------------------
|
@@ -345,7 +323,7 @@ option to the 'server' block:
|
|
345
323
|
-------------------------------------------
|
346
324
|
http {
|
347
325
|
...
|
348
|
-
|
326
|
+
|
349
327
|
server {
|
350
328
|
listen 80;
|
351
329
|
server_name www.phusion.nl;
|
@@ -353,7 +331,7 @@ http {
|
|
353
331
|
passenger_enabled on; # <--- These lines have
|
354
332
|
passenger_base_uri /rails; # <--- been added.
|
355
333
|
}
|
356
|
-
|
334
|
+
|
357
335
|
...
|
358
336
|
}
|
359
337
|
-------------------------------------------
|
@@ -515,14 +493,14 @@ Suppose that you already have a virtual host:
|
|
515
493
|
-------------------------------------------
|
516
494
|
http {
|
517
495
|
...
|
518
|
-
|
496
|
+
|
519
497
|
server {
|
520
498
|
listen 80;
|
521
499
|
server_name www.phusion.nl;
|
522
500
|
root /websites/phusion;
|
523
501
|
passenger_enabled on;
|
524
502
|
}
|
525
|
-
|
503
|
+
|
526
504
|
...
|
527
505
|
}
|
528
506
|
-------------------------------------------
|
@@ -541,7 +519,7 @@ option to the 'server' block:
|
|
541
519
|
-------------------------------------------
|
542
520
|
http {
|
543
521
|
...
|
544
|
-
|
522
|
+
|
545
523
|
server {
|
546
524
|
listen 80;
|
547
525
|
server_name www.phusion.nl;
|
@@ -549,7 +527,7 @@ http {
|
|
549
527
|
passenger_enabled on; # <--- These lines have
|
550
528
|
passenger_base_uri /rack; # <--- been added.
|
551
529
|
}
|
552
|
-
|
530
|
+
|
553
531
|
...
|
554
532
|
}
|
555
533
|
-------------------------------------------
|
@@ -591,6 +569,106 @@ touch /webapps/rackapp/tmp/restart.txt
|
|
591
569
|
include::users_guide_snippets/rackup_specifications.txt[]
|
592
570
|
|
593
571
|
|
572
|
+
== Deploying a WSGI (Python) application
|
573
|
+
|
574
|
+
Phusion Passenger supports all WSGI-compliant Python web applications. Suppose that you have a WSGI application in '/webapps/wsgiapp'. Then that folder must contain at least three entries:
|
575
|
+
|
576
|
+
- 'passenger_wsgi.py', which Phusion Passenger will use as the main entry point for your application. This file must export a WSGI object called `application`.
|
577
|
+
- 'public/', a folder containing public static web assets, like images and stylesheets.
|
578
|
+
- 'tmp/', used for 'restart.txt' (our application restart mechanism). This will be explained in a following subsection.
|
579
|
+
|
580
|
+
So '/webapps/wsgiapp' must, at minimum, look like this:
|
581
|
+
----------------------
|
582
|
+
/webapps/wsgiapp
|
583
|
+
|
|
584
|
+
+-- config.ru
|
585
|
+
|
|
586
|
+
+-- public/
|
587
|
+
|
|
588
|
+
+-- tmp/
|
589
|
+
----------------------
|
590
|
+
|
591
|
+
=== Tutorial/example: writing and deploying a Hello World WSGI application ===
|
592
|
+
|
593
|
+
First we create a Phusion Passenger-compliant WSGI directory structure:
|
594
|
+
|
595
|
+
-------------------------------------------
|
596
|
+
$ mkdir /webapps/wsgi_example
|
597
|
+
$ mkdir /webapps/wsgi_example/public
|
598
|
+
$ mkdir /webapps/wsgi_example/tmp
|
599
|
+
-------------------------------------------
|
600
|
+
|
601
|
+
Next, we write a minimal "hello world" WSGI application:
|
602
|
+
|
603
|
+
-------------------------------------------
|
604
|
+
$ cd /webapps/wsgi_example
|
605
|
+
$ some_awesome_editor passenger_wsgi.py
|
606
|
+
...type in some source code...
|
607
|
+
$ cat passenger_wsgi.py
|
608
|
+
def application(environ, start_response):
|
609
|
+
start_response(200, [('Content-Type', 'text/plain')])
|
610
|
+
return ["hello world!\n"]
|
611
|
+
-------------------------------------------
|
612
|
+
|
613
|
+
Finally, we deploy it by adding the following configuration options to
|
614
|
+
the Nginx configuration file:
|
615
|
+
|
616
|
+
-------------------------------------------
|
617
|
+
http {
|
618
|
+
...
|
619
|
+
server {
|
620
|
+
listen 80;
|
621
|
+
server_name www.wsgiexample.com;
|
622
|
+
root /webapps/wsgi_example/public;
|
623
|
+
passenger_enabled on;
|
624
|
+
}
|
625
|
+
...
|
626
|
+
}
|
627
|
+
-------------------------------------------
|
628
|
+
|
629
|
+
And we're done! After an Nginx restart, the above WSGI application will be available
|
630
|
+
under the URL 'http://www.wsgiexample.com/'.
|
631
|
+
|
632
|
+
=== Deploying to a virtual host's root ===
|
633
|
+
|
634
|
+
Add a 'server' virtual host entry to your Nginx configuration file. The virtual host's
|
635
|
+
root must point to your WSGI application's 'public' folder. You must also set
|
636
|
+
'passenger_enabled on' in the 'server' block.
|
637
|
+
|
638
|
+
For example:
|
639
|
+
-------------------------------------------
|
640
|
+
http {
|
641
|
+
...
|
642
|
+
server {
|
643
|
+
listen 80;
|
644
|
+
server_name www.wsgiapp.com;
|
645
|
+
root /webapps/wsgiapp/public;
|
646
|
+
passenger_enabled on;
|
647
|
+
}
|
648
|
+
...
|
649
|
+
}
|
650
|
+
-------------------------------------------
|
651
|
+
Then restart Nginx. The application has now been deployed.
|
652
|
+
|
653
|
+
=== Redeploying (restarting the WSGI application) ===
|
654
|
+
|
655
|
+
Deploying a new version of a WSGI application is as simple as
|
656
|
+
re-uploading the application files, and restarting the application.
|
657
|
+
|
658
|
+
There are two ways to restart the application:
|
659
|
+
|
660
|
+
1. By restarting Nginx.
|
661
|
+
2. By creating or modifying the file 'tmp/restart.txt' in the WSGI
|
662
|
+
application's <<application_root,root folder>>. Phusion Passenger will
|
663
|
+
automatically restart the application.
|
664
|
+
|
665
|
+
For example, to restart our example application, we type this in the
|
666
|
+
command line:
|
667
|
+
-------------------------------------------
|
668
|
+
touch /webapps/wsgiapp/tmp/restart.txt
|
669
|
+
-------------------------------------------
|
670
|
+
|
671
|
+
|
594
672
|
== Configuring Phusion Passenger ==
|
595
673
|
|
596
674
|
After installation, Phusion Passenger does not need any further configurations.
|
@@ -612,8 +690,12 @@ This required option may only occur once, in the 'http' configuration block.
|
|
612
690
|
=== passenger_ruby <filename> ===
|
613
691
|
This option allows one to specify the Ruby interpreter to use.
|
614
692
|
|
615
|
-
|
616
|
-
|
693
|
+
* In the 'http' configuration block.
|
694
|
+
* In a 'server' configuration block.
|
695
|
+
* In a 'location' configuration block.
|
696
|
+
* In an 'if' configuration scope.
|
697
|
+
|
698
|
+
In each place, it may be specified at most once. The default value is 'ruby', meaning that the Ruby interpreter will be looked up according to the `PATH` environment variable.
|
617
699
|
|
618
700
|
[[PassengerSpawnMethod]]
|
619
701
|
=== passenger_spawn_method <string> ===
|
@@ -625,11 +707,11 @@ understand it, as it's mostly a technical detail. You can basically follow this
|
|
625
707
|
|
626
708
|
************************************************
|
627
709
|
If your application works on Mongrel, but not on Phusion Passenger, then set
|
628
|
-
`passenger_spawn_method` to '
|
710
|
+
`passenger_spawn_method` to 'direct'. Otherwise, leave it at 'smart' (the default).
|
629
711
|
************************************************
|
630
712
|
|
631
|
-
However, we do recommend you to try to understand it. The 'smart'
|
632
|
-
|
713
|
+
However, we do recommend you to try to understand it. The 'smart' spawn
|
714
|
+
method brings many benefits.
|
633
715
|
=========================================================
|
634
716
|
|
635
717
|
include::users_guide_snippets/passenger_spawn_method.txt[]
|
@@ -641,7 +723,7 @@ This option may occur in the following places:
|
|
641
723
|
* In a 'location' configuration block.
|
642
724
|
* In an 'if' configuration scope.
|
643
725
|
|
644
|
-
In each place, it may be specified at most once. The default value is 'smart
|
726
|
+
In each place, it may be specified at most once. The default value is 'smart'.
|
645
727
|
|
646
728
|
[[PassengerRollingRestarts]]
|
647
729
|
=== passenger_rolling_restarts <on|off> ===
|
@@ -743,23 +825,6 @@ This option may occur in the following places:
|
|
743
825
|
|
744
826
|
=== Connection handling options ===
|
745
827
|
|
746
|
-
[[PassengerUseGlobalQueue]]
|
747
|
-
==== passenger_use_global_queue <on|off> ====
|
748
|
-
Turns the use of global queuing on or off.
|
749
|
-
|
750
|
-
This option may occur in the following places:
|
751
|
-
|
752
|
-
* In the 'http' configuration block.
|
753
|
-
* In a 'server' configuration block.
|
754
|
-
* In a 'location' configuration block.
|
755
|
-
* In an 'if' configuration scope.
|
756
|
-
|
757
|
-
In each place, it may be specified at most once. The default value is 'on'.
|
758
|
-
|
759
|
-
'This feature is sponsored by http://www.37signals.com/[37signals].'
|
760
|
-
|
761
|
-
include::users_guide_snippets/global_queueing_explained.txt[]
|
762
|
-
|
763
828
|
==== passenger_ignore_client_abort <on|off> ====
|
764
829
|
Normally, when the HTTP client aborts the connection (e.g. when the user clicked on "Stop"
|
765
830
|
in the browser), the connection with the application process will be closed too. If the
|
@@ -1031,7 +1096,7 @@ http {
|
|
1031
1096
|
...
|
1032
1097
|
passenger_max_pool_size 15;
|
1033
1098
|
passenger_pool_idle_time 10;
|
1034
|
-
|
1099
|
+
|
1035
1100
|
server {
|
1036
1101
|
listen 80;
|
1037
1102
|
server_name foobar.com;
|
@@ -1133,6 +1198,67 @@ applications, each which must be available at all times.
|
|
1133
1198
|
This option may only occur once, in the 'http' configuration block.
|
1134
1199
|
The default value is '300'.
|
1135
1200
|
|
1201
|
+
==== passenger_max_preloader_idle_time <integer> ====
|
1202
|
+
The ApplicationSpawner server (explained in <<spawning_methods_explained,Spawning
|
1203
|
+
methods explained>>) has an idle timeout, just like the backend processes spawned by
|
1204
|
+
Phusion Passenger do. That is, it will automatically shutdown if it hasn't done
|
1205
|
+
anything for a given period.
|
1206
|
+
|
1207
|
+
This option allows you to set the ApplicationSpawner server's idle timeout, in
|
1208
|
+
seconds. A value of '0' means that it should never idle timeout.
|
1209
|
+
|
1210
|
+
Setting a higher value will mean that the ApplicationSpawner server is kept around
|
1211
|
+
longer, which may slightly increase memory usage. But as long as the
|
1212
|
+
ApplicationSpawner server is running, the time to spawn a Ruby on Rails backend
|
1213
|
+
process only takes about 10% of the time that is normally needed, assuming that
|
1214
|
+
you're using the 'smart' or 'smart-lv2' <<RailsSpawnMethod,spawning method>>. So if your
|
1215
|
+
system has enough memory, is it recommended that you set this option to a high
|
1216
|
+
value or to '0'.
|
1217
|
+
|
1218
|
+
This option may occur in the following places:
|
1219
|
+
|
1220
|
+
* In the 'http' configuration block.
|
1221
|
+
* In a 'server' configuration block.
|
1222
|
+
* In a 'location' configuration block.
|
1223
|
+
* In an 'if' configuration scope.
|
1224
|
+
|
1225
|
+
In each place, it may be specified at most once. The default value is '300' (5 minutes).
|
1226
|
+
|
1227
|
+
[[PassengerConcurrencyModel]]
|
1228
|
+
==== passenger_concurrency_model <process|thread> ====
|
1229
|
+
:version: 4.0.0
|
1230
|
+
include::users_guide_snippets/enterprise_only.txt[]
|
1231
|
+
|
1232
|
+
Specifies the I/O concurrency model that should be used for application processes. Phusion Passenger supports two concurrency models:
|
1233
|
+
|
1234
|
+
* 'process' - single-threaded, multi-processed I/O concurrency. Each application process only has a single thread and can only handle 1 request at a time. This is the concurrency model that Ruby applications traditionally used. It has excellent compatiblity (can work with applications that are not designed to be thread-safe) but is unsuitable workloads in which the application has to wait for a lot of external I/O (e.g. HTTP API calls), and uses more memory because each process has a large memory overhead.
|
1235
|
+
* 'thread' - multi-threaded, multi-processed I/O concurrency. Each application process has multiple threads (customizable via <<PassengerThreadCount,passenger_thread_count>>). This model provides much better I/O concurrency and uses less memory because threads share memory with each other within the same process. However, using this model may cause compatibility problems if the application is not designed to be thread-safe.
|
1236
|
+
|
1237
|
+
This option may occur in the following places:
|
1238
|
+
|
1239
|
+
* In the 'http' configuration block.
|
1240
|
+
* In a 'server' configuration block.
|
1241
|
+
* In a 'location' configuration block.
|
1242
|
+
* In an 'if' configuration scope.
|
1243
|
+
|
1244
|
+
In each place, it may be specified at most once. The default value is 'process'.
|
1245
|
+
|
1246
|
+
[[PassengerThreadCount]]
|
1247
|
+
==== passenger_thread_count <number> ====
|
1248
|
+
:version: 4.0.0
|
1249
|
+
include::users_guide_snippets/enterprise_only.txt[]
|
1250
|
+
|
1251
|
+
Specifies the number of threads that Phusion Passenger should spawn per application process. This option only has effect if <<PassengerConcurrencyModel,passenger_concurrency_model>> is 'thread'.
|
1252
|
+
|
1253
|
+
This option may occur in the following places:
|
1254
|
+
|
1255
|
+
* In the 'http' configuration block.
|
1256
|
+
* In a 'server' configuration block.
|
1257
|
+
* In a 'location' configuration block.
|
1258
|
+
* In an 'if' configuration scope.
|
1259
|
+
|
1260
|
+
In each place, it may be specified at most once. The default value is '1'.
|
1261
|
+
|
1136
1262
|
[[PassengerMaxRequests]]
|
1137
1263
|
==== passenger_max_requests <integer> ====
|
1138
1264
|
The maximum number of requests an application process will process. After
|
@@ -1531,58 +1657,6 @@ This option may occur in the following places:
|
|
1531
1657
|
|
1532
1658
|
In each place, it may be specified at most once. The default value is 'production'.
|
1533
1659
|
|
1534
|
-
==== rails_framework_spawner_idle_time <integer> ====
|
1535
|
-
The FrameworkSpawner server (explained in <<spawning_methods_explained,Spawning
|
1536
|
-
methods explained>>) has an idle timeout, just like the backend processes spawned by
|
1537
|
-
Phusion Passenger do. That is, it will automatically shutdown if it hasn't done
|
1538
|
-
anything for a given period.
|
1539
|
-
|
1540
|
-
This option allows you to set the FrameworkSpawner server's idle timeout, in
|
1541
|
-
seconds. A value of '0' means that it should never idle timeout.
|
1542
|
-
|
1543
|
-
Setting a higher value will mean that the FrameworkSpawner server is kept around
|
1544
|
-
longer, which may slightly increase memory usage. But as long as the
|
1545
|
-
FrameworkSpawner server is running, the time to spawn a Ruby on Rails backend
|
1546
|
-
process only takes about 40% of the time that is normally needed, assuming that
|
1547
|
-
you're using the 'smart' <<RailsSpawnMethod,spawning method>>. So if your
|
1548
|
-
system has enough memory, is it recommended that you set this option to a high
|
1549
|
-
value or to '0'.
|
1550
|
-
|
1551
|
-
This option may occur in the following places:
|
1552
|
-
|
1553
|
-
* In the 'http' configuration block.
|
1554
|
-
* In a 'server' configuration block.
|
1555
|
-
* In a 'location' configuration block.
|
1556
|
-
* In an 'if' configuration scope.
|
1557
|
-
|
1558
|
-
In each place, it may be specified at most once. The default value is '1800' (30 minutes).
|
1559
|
-
|
1560
|
-
==== rails_app_spawner_idle_time <integer> ====
|
1561
|
-
The ApplicationSpawner server (explained in <<spawning_methods_explained,Spawning
|
1562
|
-
methods explained>>) has an idle timeout, just like the backend processes spawned by
|
1563
|
-
Phusion Passenger do. That is, it will automatically shutdown if it hasn't done
|
1564
|
-
anything for a given period.
|
1565
|
-
|
1566
|
-
This option allows you to set the ApplicationSpawner server's idle timeout, in
|
1567
|
-
seconds. A value of '0' means that it should never idle timeout.
|
1568
|
-
|
1569
|
-
Setting a higher value will mean that the ApplicationSpawner server is kept around
|
1570
|
-
longer, which may slightly increase memory usage. But as long as the
|
1571
|
-
ApplicationSpawner server is running, the time to spawn a Ruby on Rails backend
|
1572
|
-
process only takes about 10% of the time that is normally needed, assuming that
|
1573
|
-
you're using the 'smart' or 'smart-lv2' <<RailsSpawnMethod,spawning method>>. So if your
|
1574
|
-
system has enough memory, is it recommended that you set this option to a high
|
1575
|
-
value or to '0'.
|
1576
|
-
|
1577
|
-
This option may occur in the following places:
|
1578
|
-
|
1579
|
-
* In the 'http' configuration block.
|
1580
|
-
* In a 'server' configuration block.
|
1581
|
-
* In a 'location' configuration block.
|
1582
|
-
* In an 'if' configuration scope.
|
1583
|
-
|
1584
|
-
In each place, it may be specified at most once. The default value is '600' (10 minutes).
|
1585
|
-
|
1586
1660
|
=== Rack and Rails >= 3 specific options ===
|
1587
1661
|
[[RackEnv]]
|
1588
1662
|
==== rack_env <string> ====
|