passenger 3.0.14 → 3.0.15

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/README CHANGED
@@ -1,7 +1,7 @@
1
1
  == Introduction
2
2
 
3
3
  Phusion Passenger probably requires no introduction. We kindly refer the reader
4
- to http://www.modrails.com/ for general information.
4
+ to https://www.phusionpassenger.com/ for general information.
5
5
 
6
6
  == Installation
7
7
 
@@ -2570,15 +2570,138 @@ if responses can be huge. Because entire responses are buffered in memory when t
2570
2570
  </div>
2571
2571
  </div>
2572
2572
  <div class="sect2">
2573
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_security_options" data-comment-topic="security-options-1pb75ho">5.11. Security options</h3>
2573
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="PassengerRollingRestarts" data-comment-topic="passengerrollingrestarts">5.11. PassengerRollingRestarts &lt;on|off&gt;</h3>
2574
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2575
+ <div class="paragraph"><p>Enables or disables support for rolling restarts. Normally when you
2576
+ restart an application (by touching restart.txt), Phusion Passenger would
2577
+ shut down all application processes and spawn a new one. The spawning
2578
+ of a new application process could take a while, and any requests that
2579
+ come in during this time will be blocked until this first application
2580
+ process has spawned.</p></div>
2581
+ <div class="paragraph"><p>But when rolling restarts are enabled, Phusion Passenger Enterprise will:</p></div>
2582
+ <div class="olist arabic"><ol class="arabic">
2583
+ <li>
2584
+ <p>
2585
+ Spawn a new process in the background.
2586
+ </p>
2587
+ </li>
2588
+ <li>
2589
+ <p>
2590
+ When it’s done spawning, Phusion Passenger Enterprise will replace one of the old processes with this newly spawned one.
2591
+ </p>
2592
+ </li>
2593
+ <li>
2594
+ <p>
2595
+ Step 1 and 2 are repeated until all processes have been replaced.
2596
+ </p>
2597
+ </li>
2598
+ </ol></div>
2599
+ <div class="paragraph"><p>This way, visitors will not experience any delays when you are restarting your application. This allows you to, for example, upgrade your application often without degrading user experience.</p></div>
2600
+ <div class="paragraph"><p>Rolling restarts have a few caveat however that you should be aware of:</p></div>
2601
+ <div class="ulist"><ul>
2602
+ <li>
2603
+ <p>
2604
+ Upgrading an application sometimes involves upgrading the database schema.
2605
+ With rolling restarts, there may be a point in time during which processes
2606
+ belonging to the previous version and processes belonging to the new version
2607
+ both exist at the same time. Any database schema upgrades you perform must
2608
+ therefore be backwards-compatible with the old application version.
2609
+ </p>
2610
+ </li>
2611
+ <li>
2612
+ <p>
2613
+ Because there’s no telling which process will serve a request, users may
2614
+ not see changes brought about by the new version until all processes have
2615
+ been restarted. It is for this reason that you should not use rolling
2616
+ restarts in development, only in production.
2617
+ </p>
2618
+ </li>
2619
+ </ul></div>
2620
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
2621
+ <div class="ulist"><ul>
2622
+ <li>
2623
+ <p>
2624
+ In the global server configuration.
2625
+ </p>
2626
+ </li>
2627
+ <li>
2628
+ <p>
2629
+ In a virtual host configuration block.
2630
+ </p>
2631
+ </li>
2632
+ <li>
2633
+ <p>
2634
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
2635
+ </p>
2636
+ </li>
2637
+ <li>
2638
+ <p>
2639
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span> is on.
2640
+ </p>
2641
+ </li>
2642
+ </ul></div>
2643
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>off</em>.</p></div>
2644
+ </div>
2645
+ <div class="sect2">
2646
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_passengerresistdeploymenterrors_lt_on_off_gt" data-comment-topic="passengerresistdeploymenterrors">5.12. PassengerResistDeploymentErrors &lt;on|off&gt;</h3>
2647
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2648
+ <div class="paragraph"><p>Enables or disables resistance against deployment errors.</p></div>
2649
+ <div class="paragraph"><p>Suppose you’ve upgraded your application and you’ve issues a command to restart it (by touching restart.txt), but the application code contains an error that prevents Phusion Passenger from successfully spawning a process (e.g. a syntax error). Phusion Passenger would normally display an error message in response to this.</p></div>
2650
+ <div class="paragraph"><p>By enabling deployment error resistance, Phusion Passenger Enterprise would instead do this:</p></div>
2651
+ <div class="ulist"><ul>
2652
+ <li>
2653
+ <p>
2654
+ It passes the request to one of the existing application processes (that belong to the previous version of the application). The visitor will not see a Phusion Passenger process spawning error message.
2655
+ </p>
2656
+ </li>
2657
+ <li>
2658
+ <p>
2659
+ It logs the error to the global web server error log file.
2660
+ </p>
2661
+ </li>
2662
+ <li>
2663
+ <p>
2664
+ It sets an internal flag so that no processes for this application will be spawned (even when the current traffic would normally result in more processes being spawned) and no processes will be idle cleaned. Processes <strong>could</strong> still be shutdown because of other events, e.g. because their <a href="#PassengerMemoryLimit">memory limit</a> have been reached.
2665
+ </p>
2666
+ </li>
2667
+ </ul></div>
2668
+ <div class="paragraph"><p>This way, visitors will suffer minimally from deployment errors. Phusion Passenger will attempt to restart the application again next time restart.txt is touched.</p></div>
2669
+ <div class="paragraph"><p>Enabling deployment error resistance only works if <a href="#PassengerRollingRestarts">rolling restart</a> is also enabled.</p></div>
2670
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
2671
+ <div class="ulist"><ul>
2672
+ <li>
2673
+ <p>
2674
+ In the global server configuration.
2675
+ </p>
2676
+ </li>
2677
+ <li>
2678
+ <p>
2679
+ In a virtual host configuration block.
2680
+ </p>
2681
+ </li>
2682
+ <li>
2683
+ <p>
2684
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
2685
+ </p>
2686
+ </li>
2687
+ <li>
2688
+ <p>
2689
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span> is on.
2690
+ </p>
2691
+ </li>
2692
+ </ul></div>
2693
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>off</em>.</p></div>
2694
+ </div>
2695
+ <div class="sect2">
2696
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_security_options" data-comment-topic="security-options-1pb75ho">5.13. Security options</h3>
2574
2697
  <div class="sect3">
2575
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerUserSwitching" data-comment-topic="passengeruserswitching-on-off--100dc63">5.11.1. PassengerUserSwitching &lt;on|off&gt;</h4>
2698
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerUserSwitching" data-comment-topic="passengeruserswitching">5.13.1. PassengerUserSwitching &lt;on|off&gt;</h4>
2576
2699
  <div class="paragraph"><p>Whether to enable <a href="#user_switching">user switching support</a>.</p></div>
2577
2700
  <div class="paragraph"><p>This option may only occur once, in the global server configuration.
2578
2701
  The default value is <em>on</em>.</p></div>
2579
2702
  </div>
2580
2703
  <div class="sect3">
2581
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengeruser_lt_username_gt" data-comment-topic="passengeruser-username--iw6865">5.11.2. PassengerUser &lt;username&gt;</h4>
2704
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengeruser_lt_username_gt" data-comment-topic="passengeruser">5.13.2. PassengerUser &lt;username&gt;</h4>
2582
2705
  <div class="paragraph"><p>If <a href="#user_switching">user switching support</a> is enabled, then Phusion Passenger will
2583
2706
  by default run the web application as the owner of the file <em>config/environment.rb</em>
2584
2707
  (for Rails apps) or <em>config.ru</em> (for Rack apps). This option allows you to override
@@ -2605,7 +2728,7 @@ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospace
2605
2728
  <div class="paragraph"><p>In each place, it may be specified at most once.</p></div>
2606
2729
  </div>
2607
2730
  <div class="sect3">
2608
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengergroup_lt_group_name_gt" data-comment-topic="passengergroup-group-name--1ciwtix">5.11.3. PassengerGroup &lt;group name&gt;</h4>
2731
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengergroup_lt_group_name_gt" data-comment-topic="passengergroup">5.13.3. PassengerGroup &lt;group name&gt;</h4>
2609
2732
  <div class="paragraph"><p>If <a href="#user_switching">user switching support</a> is enabled, then Phusion Passenger will
2610
2733
  by default run the web application as the primary group of the owner of the file
2611
2734
  <em>config/environment.rb</em> (for Rails apps) or <em>config.ru</em> (for Rack apps). This option
@@ -2634,7 +2757,7 @@ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospace
2634
2757
  <div class="paragraph"><p>In each place, it may be specified at most once.</p></div>
2635
2758
  </div>
2636
2759
  <div class="sect3">
2637
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerDefaultUser" data-comment-topic="passengerdefaultuser-username--nbjs8w">5.11.4. PassengerDefaultUser &lt;username&gt;</h4>
2760
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerDefaultUser" data-comment-topic="passengerdefaultuser">5.13.4. PassengerDefaultUser &lt;username&gt;</h4>
2638
2761
  <div class="paragraph"><p>Phusion Passenger enables <a href="#user_switching">user switching support</a> by default.
2639
2762
  This configuration option allows one to specify the user that applications must
2640
2763
  run as, if user switching fails or is disabled.</p></div>
@@ -2642,7 +2765,7 @@ run as, if user switching fails or is disabled.</p></div>
2642
2765
  The default value is <em>nobody</em>.</p></div>
2643
2766
  </div>
2644
2767
  <div class="sect3">
2645
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerDefaultGroup" data-comment-topic="passengerdefaultgroup-group-name--1xwd1xj">5.11.5. PassengerDefaultGroup &lt;group name&gt;</h4>
2768
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerDefaultGroup" data-comment-topic="passengerdefaultgroup">5.13.5. PassengerDefaultGroup &lt;group name&gt;</h4>
2646
2769
  <div class="paragraph"><p>Phusion Passenger enables <a href="#user_switching">user switching support</a> by default.
2647
2770
  This configuration option allows one to specify the group that applications must
2648
2771
  run as, if user switching fails or is disabled.</p></div>
@@ -2651,7 +2774,7 @@ The default value is the primary group of the user specifified by
2651
2774
  <a href="#PassengerDefaultUser">PassengerDefaultUser</a>.</p></div>
2652
2775
  </div>
2653
2776
  <div class="sect3">
2654
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerfriendlyerrorpages_lt_on_off_gt" data-comment-topic="passengerfriendlyerrorpages-on-off--rdq45f">5.11.6. PassengerFriendlyErrorPages &lt;on|off&gt;</h4>
2777
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerfriendlyerrorpages_lt_on_off_gt" data-comment-topic="passengerfriendlyerrorpages">5.13.6. PassengerFriendlyErrorPages &lt;on|off&gt;</h4>
2655
2778
  <div class="paragraph"><p>Phusion Passenger can display friendly error pages whenever an application fails
2656
2779
  to start. This friendly error page presents the startup error message, some
2657
2780
  suggestions for solving the problem, and a backtrace. This feature is very useful
@@ -2686,9 +2809,9 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
2686
2809
  </div>
2687
2810
  </div>
2688
2811
  <div class="sect2">
2689
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_resource_control_and_optimization_options" data-comment-topic="resource-control-and-optimization-options-zu2f7u">5.12. Resource control and optimization options</h3>
2812
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_resource_control_and_optimization_options" data-comment-topic="resource-control-and-optimization-options-zu2f7u">5.14. Resource control and optimization options</h3>
2690
2813
  <div class="sect3">
2691
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxpoolsize_lt_integer_gt" data-comment-topic="passengermaxpoolsize-integer--am64q8">5.12.1. PassengerMaxPoolSize &lt;integer&gt;</h4>
2814
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxpoolsize_lt_integer_gt" data-comment-topic="passengermaxpoolsize-integer--am64q8">5.14.1. PassengerMaxPoolSize &lt;integer&gt;</h4>
2692
2815
  <div class="paragraph"><p>The maximum number of <a href="#application_process">application processes</a> that may
2693
2816
  simultaneously exist. A larger number results in higher memory usage,
2694
2817
  but improved ability to handle concurrent HTTP clients.</p></div>
@@ -2715,7 +2838,7 @@ by about 33%, and it’s not hard to install.</td>
2715
2838
  </div>
2716
2839
  </div>
2717
2840
  <div class="sect3">
2718
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMinInstances" data-comment-topic="passengermininstances-integer--wegq6b">5.12.2. PassengerMinInstances &lt;integer&gt;</h4>
2841
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMinInstances" data-comment-topic="passengermininstances-integer--wegq6b">5.14.2. PassengerMinInstances &lt;integer&gt;</h4>
2719
2842
  <div class="paragraph"><p>This specifies the minimum number of application processes that should exist for a
2720
2843
  given application. You should set this option to a
2721
2844
  non-zero value if you want to avoid potentially long startup times after a website
@@ -2786,7 +2909,48 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
2786
2909
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>1</em>.</p></div>
2787
2910
  </div>
2788
2911
  <div class="sect3">
2789
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxinstancesperapp_lt_integer_gt" data-comment-topic="passengermaxinstancesperapp-integer--1pteawn">5.12.3. PassengerMaxInstancesPerApp &lt;integer&gt;</h4>
2912
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxinstances_lt_integer_gt" data-comment-topic="passengermaxinstances">5.14.3. PassengerMaxInstances &lt;integer&gt;</h4>
2913
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
2914
+ <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
2915
+ for an application. This helps to make sure that a single application
2916
+ will not occupy all available slots in the application pool.</p></div>
2917
+ <div class="paragraph"><p>This value must be less than <a href="#PassengerMaxPoolSize">PassengerMaxPoolSize</a>. A value of 0
2918
+ means that there is no limit placed on the number of processes a single application
2919
+ may spawn, i.e. only the global limit of <a href="#PassengerMaxPoolSize">PassengerMaxPoolSize</a>
2920
+ will be enforced.</p></div>
2921
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
2922
+ <div class="ulist"><ul>
2923
+ <li>
2924
+ <p>
2925
+ In the global server configuration.
2926
+ </p>
2927
+ </li>
2928
+ <li>
2929
+ <p>
2930
+ In a virtual host configuration block.
2931
+ </p>
2932
+ </li>
2933
+ </ul></div>
2934
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>0</em>.</p></div>
2935
+ <div class="admonitionblock">
2936
+ <table><tr>
2937
+ <td class="icon">
2938
+ <img src="./images/icons/tip.png" alt="Tip">
2939
+ </td>
2940
+ <td class="content">
2941
+ <div class="title">Practical usage example</div>
2942
+ <div class="paragraph"><p>Suppose that you’re hosting two web applications on your server, a personal
2943
+ blog and an e-commerce website. You’ve set <a href="#PassengerMaxPoolSize">PassengerMaxPoolSize</a>
2944
+ to 10. The e-commerce website is more important to you. You can then set
2945
+ <em>PassengerMaxInstances</em> to 3 for your blog, so that it will never spawn more
2946
+ than 3 processes, even if it suddenly gets a lot of traffic. Your e-commerce website
2947
+ on the other hand will be free to spawn up to 10 processes if it gets a lot of traffic.</p></div>
2948
+ </td>
2949
+ </tr></table>
2950
+ </div>
2951
+ </div>
2952
+ <div class="sect3">
2953
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengermaxinstancesperapp_lt_integer_gt" data-comment-topic="passengermaxinstancesperapp">5.14.4. PassengerMaxInstancesPerApp &lt;integer&gt;</h4>
2790
2954
  <div class="paragraph"><p>The maximum number of application processes that may simultaneously exist
2791
2955
  for a single application. This helps to make sure that a single application
2792
2956
  will not occupy all available slots in the application pool.</p></div>
@@ -2796,9 +2960,50 @@ may use, i.e. only the global limit of <a href="#PassengerMaxPoolSize">Passenger
2796
2960
  will be enforced.</p></div>
2797
2961
  <div class="paragraph"><p>This option may only occur once, in the global server configuration.
2798
2962
  The default value is <em>0</em>.</p></div>
2963
+ <div class="admonitionblock">
2964
+ <table><tr>
2965
+ <td class="icon">
2966
+ <img src="./images/icons/tip.png" alt="Tip">
2967
+ </td>
2968
+ <td class="content">
2969
+ <div class="title">Practical usage example</div>
2970
+ <div class="paragraph"><p>Suppose that you’re hosting two blogs (blog A and B) on your server, and that
2971
+ you’ve set <a href="#PassengerMaxPoolSize">PassengerMaxPoolSize</a> to 10. Under normal
2972
+ circumstances, if blog A suddenly gets a lot of traffic, then A will use all 10
2973
+ pool slots. If blog B suddenly gets some traffic, then it will only be able to
2974
+ use 1 pool slot (forcefully releasing 1 slot from A) until A’s traffic has
2975
+ settled down and it has released more pool slots.</p></div>
2976
+ <div class="paragraph"><p>If you consider both blogs equally important, then you can set
2977
+ <em>PassengerMaxInstancesPerApp</em> to 5. This way, both blogs will never use more
2978
+ than 5 pool slots.</p></div>
2979
+ </td>
2980
+ </tr></table>
2981
+ </div>
2982
+ <div class="admonitionblock">
2983
+ <table><tr>
2984
+ <td class="icon">
2985
+ <img src="./images/icons/note.png" alt="Note">
2986
+ </td>
2987
+ <td class="content">
2988
+ <div class="title">Relation with PassengerMaxInstances</div>
2989
+ <div class="paragraph"><p>Unlike <a href="#PassengerMaxInstances">PassengerMaxInstances</a>, this configuration
2990
+ option is global and applies to all applications. <em>PassengerMaxInstances</em> on the
2991
+ other hand is per-virtual host.</p></div>
2992
+ <div class="paragraph"><p>Suppose that you’re hosting two web applications on your server, a personal
2993
+ blog and an e-commerce website. You’ve set <a href="#PassengerMaxPoolSize">PassengerMaxPoolSize</a>
2994
+ to 10. The e-commerce website is more important to you. You can then set
2995
+ <em>PassengerMaxInstances</em> to 3 for your blog, so that it will never use more than
2996
+ 3 pool slots, even if it suddenly gets a lot of traffic. Your e-commerce website
2997
+ on the other hand will be free to use up all 10 slots if it gets a lot of traffic.</p></div>
2998
+ <div class="paragraph"><p>In summary, <em>PassengerMaxInstancesPerApp</em> divides the pool equally among the
2999
+ different web applications, while <em>PassengerMaxInstances</em> allows one to divide
3000
+ the pool unequally, according to each web application’s relative importance.</p></div>
3001
+ </td>
3002
+ </tr></table>
3003
+ </div>
2799
3004
  </div>
2800
3005
  <div class="sect3">
2801
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerPoolIdleTime" data-comment-topic="passengerpoolidletime-integer--a3gunq">5.12.4. PassengerPoolIdleTime &lt;integer&gt;</h4>
3006
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerPoolIdleTime" data-comment-topic="passengerpoolidletime-integer--a3gunq">5.14.5. PassengerPoolIdleTime &lt;integer&gt;</h4>
2802
3007
  <div class="paragraph"><p>The maximum number of seconds that an application process may be idle. That is,
2803
3008
  if an application process hasn’t received any traffic after the given number of
2804
3009
  seconds, then it will be shutdown in order to conserve memory.</p></div>
@@ -2820,7 +3025,7 @@ applications, each which must be available at all times.</p></div>
2820
3025
  The default value is <em>300</em>.</p></div>
2821
3026
  </div>
2822
3027
  <div class="sect3">
2823
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMaxRequests" data-comment-topic="passengermaxrequests-integer--ietgd0">5.12.5. PassengerMaxRequests &lt;integer&gt;</h4>
3028
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMaxRequests" data-comment-topic="passengermaxrequests">5.14.6. PassengerMaxRequests &lt;integer&gt;</h4>
2824
3029
  <div class="paragraph"><p>The maximum number of requests an application process will process. After
2825
3030
  serving that many requests, the application process will be shut down and
2826
3031
  Phusion Passenger will restart it. A value of 0 means that there is no maximum:
@@ -2868,7 +3073,162 @@ measure to avoid memory leaks.</p></div>
2868
3073
  </div>
2869
3074
  </div>
2870
3075
  <div class="sect3">
2871
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerstatthrottlerate_lt_integer_gt" data-comment-topic="passengerstatthrottlerate-integer--13zx4xo">5.12.6. PassengerStatThrottleRate &lt;integer&gt;</h4>
3076
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMaxRequestTime" data-comment-topic="passengermaxrequesttime-seconds--7qnz3x">5.14.7. PassengerMaxRequestTime &lt;seconds&gt;</h4>
3077
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3078
+ <div class="paragraph"><p>The maximum amount of time, in seconds, that an application process may take
3079
+ to process a request. If the request takes longer than this amount of time,
3080
+ then the application process will be forcefully shut down, and possibly
3081
+ restarted upon the next request. A value of 0 means that there is no time limit.</p></div>
3082
+ <div class="paragraph"><p>This option is useful for preventing your application from freezing for an
3083
+ indefinite period of time.</p></div>
3084
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
3085
+ <div class="ulist"><ul>
3086
+ <li>
3087
+ <p>
3088
+ In the global server configuration.
3089
+ </p>
3090
+ </li>
3091
+ <li>
3092
+ <p>
3093
+ In a virtual host configuration block.
3094
+ </p>
3095
+ </li>
3096
+ <li>
3097
+ <p>
3098
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
3099
+ </p>
3100
+ </li>
3101
+ <li>
3102
+ <p>
3103
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> is on.
3104
+ </p>
3105
+ </li>
3106
+ </ul></div>
3107
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>0</em>.</p></div>
3108
+ <div class="paragraph">
3109
+ <div class="title">Example</div>
3110
+ <p>Suppose that most of your requests are known to finish within 2 seconds.
3111
+ However, there is one URI, <em>/expensive_computation</em>, which is known to take up
3112
+ to 10 seconds. You can then configure Phusion Passenger as follows:</p>
3113
+ </div>
3114
+ <div class="listingblock">
3115
+ <div class="content monospaced">
3116
+ <pre>&lt;VirtualHost *:80&gt;
3117
+ ServerName www.example.com
3118
+ DocumentRoot /webapps/my_app/public
3119
+
3120
+ PassengerMaxRequestTime 2
3121
+ &lt;Location /expensive_computation&gt;
3122
+ PassengerMaxRequestTime 10
3123
+ &lt;/Location&gt;
3124
+ &lt;/VirtualHost&gt;</pre>
3125
+ </div>
3126
+ </div>
3127
+ <div class="paragraph"><p>If a request to <em>/expensive_computation</em> takes more than 10 seconds,
3128
+ or if a request to any other URI takes more than 2 seconds,
3129
+ then the corresponding application process will be forced to shutdown.</p></div>
3130
+ <div class="admonitionblock">
3131
+ <table><tr>
3132
+ <td class="icon">
3133
+ <img src="./images/icons/caution.png" alt="Caution">
3134
+ </td>
3135
+ <td class="content">
3136
+ <div class="paragraph"><p>The <a href="#PassengerMaxRequestTime">PassengerMaxRequestTime</a> directive should be
3137
+ considered as a workaround for misbehaving applications. It is advised that you
3138
+ fix the problem in your application rather than relying on these directives as a
3139
+ measure to avoid freezing applications.</p></div>
3140
+ </td>
3141
+ </tr></table>
3142
+ </div>
3143
+ </div>
3144
+ <div class="sect3">
3145
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerMemoryLimit" data-comment-topic="passengermemorylimit">5.14.8. PassengerMemoryLimit &lt;integer&gt;</h4>
3146
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3147
+ <div class="paragraph"><p>The maximum amount of memory that an application process may use, in megabytes.
3148
+ Once an application process has surpassed its memory limit, it will process
3149
+ all the requests currently present in its queue and then shut down.
3150
+ A value of 0 means that there is no maximum: the application’s memory usage
3151
+ will not be checked.</p></div>
3152
+ <div class="paragraph"><p>This option is useful if your application is leaking memory. By shutting
3153
+ it down, all of its memory is guaranteed to be freed by the operating system.</p></div>
3154
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
3155
+ <div class="ulist"><ul>
3156
+ <li>
3157
+ <p>
3158
+ In the global server configuration.
3159
+ </p>
3160
+ </li>
3161
+ <li>
3162
+ <p>
3163
+ In a virtual host configuration block.
3164
+ </p>
3165
+ </li>
3166
+ <li>
3167
+ <p>
3168
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
3169
+ </p>
3170
+ </li>
3171
+ <li>
3172
+ <p>
3173
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> is on.
3174
+ </p>
3175
+ </li>
3176
+ </ul></div>
3177
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>200</em>.</p></div>
3178
+ <div class="admonitionblock">
3179
+ <table><tr>
3180
+ <td class="icon">
3181
+ <img src="./images/icons/note.png" alt="Note">
3182
+ </td>
3183
+ <td class="content">
3184
+ <div class="title">A word about permissions</div>
3185
+ <div class="paragraph"><p>The <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> directive requires that the
3186
+ user that the application is running as (see <a href="#PassengerUserSwitching">PassengerUserSwitching</a>)
3187
+ to have access to the <span class="monospaced">/proc</span> file system, or to be able to inspect its status
3188
+ with <span class="monospaced">ps</span> (which on Linux and FreeBSD systems basically means the same thing, since <span class="monospaced">ps</span>
3189
+ reads process information from <span class="monospaced">/proc</span>). Therefore, on servers running with
3190
+ tight permissions on <span class="monospaced">/proc</span>, this directive may not work. If you wish to use
3191
+ this directive and your <span class="monospaced">/proc</span> permissions are too tight, then please consider
3192
+ untightening the permissions.</p></div>
3193
+ </td>
3194
+ </tr></table>
3195
+ </div>
3196
+ <div class="admonitionblock">
3197
+ <table><tr>
3198
+ <td class="icon">
3199
+ <img src="./images/icons/tip.png" alt="Tip">
3200
+ </td>
3201
+ <td class="content">
3202
+ <div class="title">FreeBSD and <span class="monospaced">/proc</span>
3203
+ </div>
3204
+ <div class="paragraph"><p>On many FreeBSD systems, <span class="monospaced">/proc</span> is not mounted by default. <span class="monospaced">/proc</span> <strong>must</strong> be
3205
+ mounted in order for <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> to work.</p></div>
3206
+ <div class="paragraph"><p>It is also advised that you mount <span class="monospaced">/proc</span> with the <span class="monospaced">linprocfs</span> filesystem type
3207
+ instead of the regular FreeBSD <span class="monospaced">proc</span> filesystem type. The <span class="monospaced">linprocfs</span> filesystem
3208
+ type allows Phusion Passenger to read memory information from <span class="monospaced">/proc</span> directly,
3209
+ which is very fast. If you mount <span class="monospaced">/proc</span> with a different filesystem type, then
3210
+ Phusion Passenger must resort to querying memory information from the <span class="monospaced">ps</span> command,
3211
+ which is a lot slower.</p></div>
3212
+ </td>
3213
+ </tr></table>
3214
+ </div>
3215
+ <div class="admonitionblock">
3216
+ <table><tr>
3217
+ <td class="icon">
3218
+ <img src="./images/icons/caution.png" alt="Caution">
3219
+ </td>
3220
+ <td class="content">
3221
+ <div class="paragraph"><p>The <a href="#PassengerMaxRequests">PassengerMaxRequests</a> and
3222
+ <a href="#PassengerMemoryLimit">PassengerMemoryLimit</a> directives should be considered
3223
+ as workarounds for misbehaving applications. It is advised that you fix the
3224
+ problem in your application rather than relying on these directives as a
3225
+ measure to avoid memory leaks.</p></div>
3226
+ </td>
3227
+ </tr></table>
3228
+ </div>
3229
+ </div>
3230
+ <div class="sect3">
3231
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerstatthrottlerate_lt_integer_gt" data-comment-topic="passengerstatthrottlerate">5.14.9. PassengerStatThrottleRate &lt;integer&gt;</h4>
2872
3232
  <div class="paragraph"><p>By default, Phusion Passenger performs several filesystem checks (or, in
2873
3233
  programmers jargon, <em>stat() calls</em>) each time a request is processed:</p></div>
2874
3234
  <div class="ulist"><ul>
@@ -2920,7 +3280,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Limits</span> i
2920
3280
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>0</em>.</p></div>
2921
3281
  </div>
2922
3282
  <div class="sect3">
2923
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerPreStart" data-comment-topic="passengerprestart-url--1v76tcz">5.12.7. PassengerPreStart &lt;url&gt;</h4>
3283
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerPreStart" data-comment-topic="passengerprestart-url--1dvgku9">5.14.10. PassengerPreStart &lt;url&gt;</h4>
2924
3284
  <div class="paragraph"><p>By default, Phusion Passenger does not start any application processes until said
2925
3285
  web application is first accessed. The result is that the first visitor of said
2926
3286
  web application might experience a small delay as Phusion Passenger is starting
@@ -3158,7 +3518,7 @@ the request ending up at a different web server in the cluster.</p></div>
3158
3518
  </div>
3159
3519
  </div>
3160
3520
  <div class="sect3">
3161
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerHighPerformance" data-comment-topic="passengerhighperformance-on-off--36mw1l">5.12.8. PassengerHighPerformance &lt;on|off&gt;</h4>
3521
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerHighPerformance" data-comment-topic="passengerhighperformance-on-off--zgc547">5.14.11. PassengerHighPerformance &lt;on|off&gt;</h4>
3162
3522
  <div class="paragraph"><p>By default, Phusion Passenger is compatible with mod_rewrite and most other
3163
3523
  Apache modules. However, a lot of effort is required in order to be compatible.
3164
3524
  If you turn <em>PassengerHighPerformance</em> to <em>on</em>, then Phusion Passenger will be
@@ -3242,9 +3602,9 @@ then you can enable high performance mode for a certain URL only. For example:</
3242
3602
  </div>
3243
3603
  </div>
3244
3604
  <div class="sect2">
3245
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_compatibility_options" data-comment-topic="compatibility-options-8jve5a">5.13. Compatibility options</h3>
3605
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_compatibility_options" data-comment-topic="compatibility-options-8jve5a">5.15. Compatibility options</h3>
3246
3606
  <div class="sect3">
3247
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerResolveSymlinksInDocumentRoot" data-comment-topic="passengerresolvesymlinksindocumentroot-on-off--vblz7e">5.13.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</h4>
3607
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="PassengerResolveSymlinksInDocumentRoot" data-comment-topic="passengerresolvesymlinksindocumentroot-on-off--1r0qcp8">5.15.1. PassengerResolveSymlinksInDocumentRoot &lt;on|off&gt;</h4>
3248
3608
  <div class="paragraph"><p>Configures whether Phusion Passenger should resolve symlinks in the document root.
3249
3609
  Please refer to <a href="#application_detection">How Phusion Passenger detects whether a virtual host is a web application</a> for more information.</p></div>
3250
3610
  <div class="paragraph"><p>This option may occur in the following places:</p></div>
@@ -3273,7 +3633,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3273
3633
  <div class="paragraph"><p>In each place, it may be specified at most once. It is off by default.</p></div>
3274
3634
  </div>
3275
3635
  <div class="sect3">
3276
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerallowencodedslashes_lt_on_off_gt" data-comment-topic="passengerallowencodedslashes-on-off--1ud9a92">5.13.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</h4>
3636
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerallowencodedslashes_lt_on_off_gt" data-comment-topic="passengerallowencodedslashes-on-off--1y3s1ww">5.15.2. PassengerAllowEncodedSlashes &lt;on|off&gt;</h4>
3277
3637
  <div class="paragraph"><p>By default, Apache doesn’t support URLs with encoded slashes (%2f), e.g. URLs like
3278
3638
  this: <span class="monospaced">/users/fujikura%2fyuu</span>. If you access such an URL then Apache will return a
3279
3639
  404 Not Found error. This can be solved by turning on PassengerAllowEncodedSlashes
@@ -3342,9 +3702,9 @@ displaying maintenance.html will work fine even for URLs starting with "/users".
3342
3702
  </div>
3343
3703
  </div>
3344
3704
  <div class="sect2">
3345
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_logging_and_debugging_options" data-comment-topic="logging-and-debugging-options-el2cuc">5.14. Logging and debugging options</h3>
3705
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_logging_and_debugging_options" data-comment-topic="logging-and-debugging-options-el2cuc">5.16. Logging and debugging options</h3>
3346
3706
  <div class="sect3">
3347
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerloglevel_lt_integer_gt" data-comment-topic="passengerloglevel-integer--1lt2yhq">5.14.1. PassengerLogLevel &lt;integer&gt;</h4>
3707
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerloglevel_lt_integer_gt" data-comment-topic="passengerloglevel-integer--1v67p8l">5.16.1. PassengerLogLevel &lt;integer&gt;</h4>
3348
3708
  <div class="paragraph"><p>This option allows one to specify how much information Phusion Passenger should
3349
3709
  write to the Apache error log file. A higher log level value means that more
3350
3710
  information will be logged.</p></div>
@@ -3377,17 +3737,56 @@ information will be logged.</p></div>
3377
3737
  The default is <em>0</em>.</p></div>
3378
3738
  </div>
3379
3739
  <div class="sect3">
3380
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerdebuglogfile_lt_filename_gt" data-comment-topic="passengerdebuglogfile-filename--pgj55c">5.14.2. PassengerDebugLogFile &lt;filename&gt;</h4>
3740
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerdebuglogfile_lt_filename_gt" data-comment-topic="passengerdebuglogfile-filename--1tfy4z9">5.16.2. PassengerDebugLogFile &lt;filename&gt;</h4>
3381
3741
  <div class="paragraph"><p>By default Phusion Passenger debugging and error messages are written to the global
3382
3742
  web server error log. This option allows one to specify the file that debugging and
3383
3743
  error messages should be written to instead.</p></div>
3384
3744
  <div class="paragraph"><p>This option may only occur once, in the global server configuration.</p></div>
3385
3745
  </div>
3746
+ <div class="sect3">
3747
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_passengerdebugger_lt_on_off_gt" data-comment-topic="passengerdebugger-on-off--1lgdk7g">5.16.3. PassengerDebugger &lt;on|off&gt;</h4>
3748
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
3749
+ <div class="paragraph"><p>Turns support for application debugging on or off. In case of Ruby applications,
3750
+ turning this option on will cause them to load the <span class="monospaced">ruby-debug</span> gem (when on Ruby 1.8)
3751
+ or the <span class="monospaced">debugger</span> gem (when on Ruby 1.9). If you’re using Bundler, you should add
3752
+ this to your Gemfile:</p></div>
3753
+ <div class="listingblock">
3754
+ <div class="content monospaced">
3755
+ <pre>gem 'ruby-debug', :platforms =&gt; :ruby_18
3756
+ gem 'debugger', :platforms =&gt; :ruby_19</pre>
3757
+ </div>
3758
+ </div>
3759
+ <div class="paragraph"><p>Once debugging is turned on, you can use the command <span class="monospaced">passenger-irb --debug &lt;PID&gt;</span> to attach an rdebug console to the application process with the given PID. Attaching will succeed once the application process executes a <span class="monospaced">debugger</span> command.</p></div>
3760
+ <div class="paragraph"><p>This option may occur in the following places:</p></div>
3761
+ <div class="ulist"><ul>
3762
+ <li>
3763
+ <p>
3764
+ In the global server configuration.
3765
+ </p>
3766
+ </li>
3767
+ <li>
3768
+ <p>
3769
+ In a virtual host configuration block.
3770
+ </p>
3771
+ </li>
3772
+ <li>
3773
+ <p>
3774
+ In a <span class="monospaced">&lt;Directory&gt;</span> or <span class="monospaced">&lt;Location&gt;</span> block.
3775
+ </p>
3776
+ </li>
3777
+ <li>
3778
+ <p>
3779
+ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span> is on.
3780
+ </p>
3781
+ </li>
3782
+ </ul></div>
3783
+ <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>off</em>.</p></div>
3784
+ </div>
3386
3785
  </div>
3387
3786
  <div class="sect2">
3388
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_ruby_on_rails_specific_options" data-comment-topic="ruby-on-rails-specific-options-1t10wfu">5.15. Ruby on Rails-specific options</h3>
3787
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_ruby_on_rails_specific_options" data-comment-topic="ruby-on-rails-specific-options-1t10wfu">5.17. Ruby on Rails-specific options</h3>
3389
3788
  <div class="sect3">
3390
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsautodetect_lt_on_off_gt" data-comment-topic="railsautodetect-on-off--tpigsd">5.15.1. RailsAutoDetect &lt;on|off&gt;</h4>
3789
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsautodetect_lt_on_off_gt" data-comment-topic="railsautodetect-on-off--tpigsd">5.17.1. RailsAutoDetect &lt;on|off&gt;</h4>
3391
3790
  <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host’s
3392
3791
  document root is a Ruby on Rails application. The default is <em>on</em>.</p></div>
3393
3792
  <div class="paragraph"><p>This option may occur in the global server configuration or in a virtual host
@@ -3419,7 +3818,7 @@ application by using the <a href="#RailsBaseURI">RailsBaseURI</a> configuration
3419
3818
  </div>
3420
3819
  </div>
3421
3820
  <div class="sect3">
3422
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="RailsBaseURI" data-comment-topic="railsbaseuri-uri--1txrw3k">5.15.2. RailsBaseURI &lt;uri&gt;</h4>
3821
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="RailsBaseURI" data-comment-topic="railsbaseuri-uri--1txrw3k">5.17.2. RailsBaseURI &lt;uri&gt;</h4>
3423
3822
  <div class="paragraph"><p>Used to specify that the given URI is a Rails application. See
3424
3823
  <a href="#deploying_rails_to_sub_uri">Deploying Rails to a sub URI</a> for an example.</p></div>
3425
3824
  <div class="paragraph"><p>It is allowed to specify this option multiple times. Do this to deploy multiple
@@ -3449,7 +3848,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3449
3848
  </ul></div>
3450
3849
  </div>
3451
3850
  <div class="sect3">
3452
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="rails_env" data-comment-topic="railsenv-string--1b0xxvu">5.15.3. RailsEnv &lt;string&gt;</h4>
3851
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="rails_env" data-comment-topic="railsenv-string--1b0xxvu">5.17.3. RailsEnv &lt;string&gt;</h4>
3453
3852
  <div class="paragraph"><p>This option allows one to specify the default <span class="monospaced">RAILS_ENV</span> value.</p></div>
3454
3853
  <div class="paragraph"><p>This option may occur in the following places:</p></div>
3455
3854
  <div class="ulist"><ul>
@@ -3477,7 +3876,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3477
3876
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>production</em>.</p></div>
3478
3877
  </div>
3479
3878
  <div class="sect3">
3480
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsframeworkspawneridletime_lt_integer_gt" data-comment-topic="railsframeworkspawneridletime-integer--1ai8dgq">5.15.4. RailsFrameworkSpawnerIdleTime &lt;integer&gt;</h4>
3879
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsframeworkspawneridletime_lt_integer_gt" data-comment-topic="railsframeworkspawneridletime-integer--1ai8dgq">5.17.4. RailsFrameworkSpawnerIdleTime &lt;integer&gt;</h4>
3481
3880
  <div class="paragraph"><p>The FrameworkSpawner server (explained in <a href="#spawning_methods_explained">Spawning methods explained</a>) has an idle timeout, just like the backend processes spawned by
3482
3881
  Phusion Passenger do. That is, it will automatically shutdown if it hasn’t done
3483
3882
  anything for a given period.</p></div>
@@ -3506,7 +3905,7 @@ In a virtual host configuration block.
3506
3905
  <div class="paragraph"><p>In each place, it may be specified at most once. The default value is <em>1800</em> (30 minutes).</p></div>
3507
3906
  </div>
3508
3907
  <div class="sect3">
3509
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsappspawneridletime_lt_integer_gt" data-comment-topic="railsappspawneridletime-integer--1awgog1">5.15.5. RailsAppSpawnerIdleTime &lt;integer&gt;</h4>
3908
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsappspawneridletime_lt_integer_gt" data-comment-topic="railsappspawneridletime-integer--1awgog1">5.17.5. RailsAppSpawnerIdleTime &lt;integer&gt;</h4>
3510
3909
  <div class="paragraph"><p>The ApplicationSpawner server (explained in <a href="#spawning_methods_explained">Spawning methods explained</a>) has an idle timeout, just like the backend processes spawned by
3511
3910
  Phusion Passenger do. That is, it will automatically shutdown if it hasn’t done
3512
3911
  anything for a given period.</p></div>
@@ -3536,9 +3935,9 @@ In a virtual host configuration block.
3536
3935
  </div>
3537
3936
  </div>
3538
3937
  <div class="sect2">
3539
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_specific_options" data-comment-topic="rack-specific-options-wk9qzt">5.16. Rack-specific options</h3>
3938
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_rack_specific_options" data-comment-topic="rack-specific-options-wk9qzt">5.18. Rack-specific options</h3>
3540
3939
  <div class="sect3">
3541
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_rackautodetect_lt_on_off_gt" data-comment-topic="rackautodetect-on-off--vl1lxy">5.16.1. RackAutoDetect &lt;on|off&gt;</h4>
3940
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_rackautodetect_lt_on_off_gt" data-comment-topic="rackautodetect-on-off--vl1lxy">5.18.1. RackAutoDetect &lt;on|off&gt;</h4>
3542
3941
  <div class="paragraph"><p>Whether Phusion Passenger should automatically detect whether a virtual host’s
3543
3942
  document root is a Rack application. The default is <em>on</em>.</p></div>
3544
3943
  <div class="paragraph"><p>This option may occur in the global server configuration or in a virtual host
@@ -3570,7 +3969,7 @@ application by using the <a href="#RackBaseURI">RackBaseURI</a> configuration op
3570
3969
  </div>
3571
3970
  </div>
3572
3971
  <div class="sect3">
3573
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="RackBaseURI" data-comment-topic="rackbaseuri-uri--1to24pj">5.16.2. RackBaseURI &lt;uri&gt;</h4>
3972
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="RackBaseURI" data-comment-topic="rackbaseuri-uri--1to24pj">5.18.2. RackBaseURI &lt;uri&gt;</h4>
3574
3973
  <div class="paragraph"><p>Used to specify that the given URI is a Rack application. See
3575
3974
  <a href="#deploying_rack_to_sub_uri">Deploying Rack to a sub URI</a> for an example.</p></div>
3576
3975
  <div class="paragraph"><p>It is allowed to specify this option multiple times. Do this to deploy multiple
@@ -3600,7 +3999,7 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3600
3999
  </ul></div>
3601
4000
  </div>
3602
4001
  <div class="sect3">
3603
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="rack_env" data-comment-topic="rackenv-string--vve9py">5.16.3. RackEnv &lt;string&gt;</h4>
4002
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="rack_env" data-comment-topic="rackenv-string--vve9py">5.18.3. RackEnv &lt;string&gt;</h4>
3604
4003
  <div class="paragraph"><p>The given value will be accessible in Rack applications in the <span class="monospaced">RACK_ENV</span>
3605
4004
  environment variable. This allows one to define the environment in which
3606
4005
  Rack applications are run, very similar to <span class="monospaced">RAILS_ENV</span>.</p></div>
@@ -3631,27 +4030,27 @@ In <em>.htaccess</em>, if <span class="monospaced">AllowOverride Options</span>
3631
4030
  </div>
3632
4031
  </div>
3633
4032
  <div class="sect2">
3634
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_deprecated_options" data-comment-topic="deprecated-options-pm9m57">5.17. Deprecated options</h3>
4033
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_deprecated_options" data-comment-topic="deprecated-options-pm9m57">5.19. Deprecated options</h3>
3635
4034
  <div class="paragraph"><p>The following options have been deprecated, but are still supported for backwards
3636
4035
  compatibility reasons.</p></div>
3637
4036
  <div class="sect3">
3638
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsruby" data-comment-topic="railsruby-ht09ei">5.17.1. RailsRuby</h4>
4037
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsruby" data-comment-topic="railsruby-ht09ei">5.19.1. RailsRuby</h4>
3639
4038
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerRuby">PassengerRuby</a>.</p></div>
3640
4039
  </div>
3641
4040
  <div class="sect3">
3642
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsuserswitching" data-comment-topic="railsuserswitching-1npx8y4">5.17.2. RailsUserSwitching</h4>
4041
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsuserswitching" data-comment-topic="railsuserswitching-1npx8y4">5.19.2. RailsUserSwitching</h4>
3643
4042
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerUserSwitching">PassengerUserSwitching</a>.</p></div>
3644
4043
  </div>
3645
4044
  <div class="sect3">
3646
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsdefaultuser" data-comment-topic="railsdefaultuser-19j7n3m">5.17.3. RailsDefaultUser</h4>
4045
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsdefaultuser" data-comment-topic="railsdefaultuser-19j7n3m">5.19.3. RailsDefaultUser</h4>
3647
4046
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerDefaultUser">PassengerDefaultUser</a>.</p></div>
3648
4047
  </div>
3649
4048
  <div class="sect3">
3650
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsallowmodrewrite" data-comment-topic="railsallowmodrewrite-1vkziro">5.17.4. RailsAllowModRewrite</h4>
4049
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsallowmodrewrite" data-comment-topic="railsallowmodrewrite-1vkziro">5.19.4. RailsAllowModRewrite</h4>
3651
4050
  <div class="paragraph"><p>This option doesn’t do anything anymore in recent versions of Phusion Passenger.</p></div>
3652
4051
  </div>
3653
4052
  <div class="sect3">
3654
- <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsspawnmethod" data-comment-topic="railsspawnmethod-1aljgpa">5.17.5. RailsSpawnMethod</h4>
4053
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h4 id="_railsspawnmethod" data-comment-topic="railsspawnmethod-1aljgpa">5.19.5. RailsSpawnMethod</h4>
3655
4054
  <div class="paragraph"><p>Deprecated in favor of <a href="#PassengerSpawnMethod">PassengerSpawnMethod</a>.</p></div>
3656
4055
  </div>
3657
4056
  </div>
@@ -4458,6 +4857,11 @@ through the <em>X-Passenger-Connect-Password</em> HTTP header, like this:</p></d
4458
4857
  </div>
4459
4858
  </div>
4460
4859
  </div>
4860
+ <div class="sect2">
4861
+ <a href="javascript:void(0)" class="comments empty" title="Add a comment"><span class="count"></span></a><h3 id="_attaching_an_irb_console_to_an_application_process" data-comment-topic="attaching-an-irb-console-to-an-application-process-1cma32j">7.5. Attaching an IRB console to an application process</h3>
4862
+ <div class="paragraph"><p><strong>Available in Phusion Passenger Enterprise since version 3.0.0.</strong></p></div>
4863
+ <div class="paragraph"><p>You can attach an IRB console to any application process and inspect its state by executing arbitrary Ruby code. Do this by invoking <span class="monospaced">passenger-irb &lt;PID&gt;</span> where <em>&lt;PID&gt;</em> is the PID of the application process you wish to inspect. Note that the IRB console is currently only available for Ruby apps, not for apps in any other languages.</p></div>
4864
+ </div>
4461
4865
  </div>
4462
4866
  </div>
4463
4867
  <div class="sect1">
@@ -5243,7 +5647,7 @@ has no effect.</p></div>
5243
5647
  <div id="footnotes"><hr></div>
5244
5648
  <div id="footer">
5245
5649
  <div id="footer-text">
5246
- Last updated 2012-07-21 20:27:37 CEST
5650
+ Last updated 2012-08-01 13:31:01 CEST
5247
5651
  </div>
5248
5652
  </div>
5249
5653
  <script>/*! jQuery v1.7.1 jquery.com | jquery.org/license */