⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpm_common.html

📁 这个是我在web培训时老师提供的手册
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    <p><code class="directive">StartServers</code>指令设置了服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。</p>

    <p>不同的MPM默认值也不一样。对于<code class="module"><a href="../mod/worker.html">worker</a></code>默认值是"<code>3</code>"。对于<code class="module"><a href="../mod/prefork.html">prefork</a></code>默认值是"<code>5</code>",<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>是"<code>2</code>"。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="StartThreads" id="StartThreads">StartThreads</a> <a name="startthreads" id="startthreads">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>服务器启动时建立的线程数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>StartThreads <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/beos.html">beos</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code></td></tr>
</table>
    <p>设置了服务器启动时建立的线程数量。因为线程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。</p>

    <p>对于<code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code> ,默认值是"<code>50</code>",由于只有一个进程,因此所有的线程都将用于伺服请求。</p>

    <p>对于<code class="module"><a href="../mod/beos.html">beos</a></code> ,默认值是"<code>10</code>",同样也是所有的线程都将用于伺服请求。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ThreadLimit" id="ThreadLimit">ThreadLimit</a> <a name="threadlimit" id="threadlimit">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>每个子进程可配置的线程数上限</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>ThreadLimit <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td>仅用于2.0.41及以后版本的<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
</table>
    <p>这个指令设置了每个子进程可配置的线程数<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>上限。任何在重启期间对这个指令的改变都将被忽略,但对<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>的修改却会生效。</p>

    <p>使用这个指令时要特别当心。如果将<code class="directive">ThreadLimit</code>设置成一个高出<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>实际需要很多的值,将会有过多的共享内存被分配。如果将<code class="directive">ThreadLimit</code>和<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。该指令的值应当和<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>可能达到的最大值保持一致。</p>

    <p>对于<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>,<code class="directive">ThreadLimit</code>的默认值是<code>1920</code>;对于其他MPM这个值是<code>64</code>。</p>

    <div class="note"><h3>注意</h3>
      <p>Apache在编译时内部有一个硬性的限制"<code>ThreadLimit 20000</code>"(对于<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>是"<code>ThreadLimit 15000</code>"),你不能超越这个限制。</p>
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ThreadsPerChild" id="ThreadsPerChild">ThreadsPerChild</a> <a name="threadsperchild" id="threadsperchild">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>每个子进程建立的线程数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>ThreadsPerChild <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
</table>
    <p>这个指令设置了每个子进程建立的线程数。子进程在启动时建立这些线程后就不再建立新的线程了。如果使用一个类似于<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>只有一个子进程的MPM,这个数值要足够大,以便可以处理可能的请求高峰。如果使用一个类似于<code class="module"><a href="../mod/worker.html">worker</a></code>有多个子进程的MPM,每个子进程所拥有的<em>所有</em>线程的总数要足够大,以便可以处理可能的请求高峰。</p>

    <p>对于<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>,<code class="directive">ThreadsPerChild</code>的默认值是<code>64</code>;对于其他MPM是<code>25</code>。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="ThreadStackSize" id="ThreadStackSize">ThreadStackSize</a> <a name="threadstacksize" id="threadstacksize">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>处理客户端连接的线程使用的栈尺寸(字节)</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>ThreadStackSize <var>size</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>NetWare上为65536;其它平台上等于操作系统默认值</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td>仅在 Apache 2.1 及以后的版本中可用</td></tr>
</table>
    <p><code class="directive">ThreadStackSize</code>指令设置了处理客户端连接(包括调用模块以协助处理)的线程允许使用的最大栈尺寸(字节)。在大多数情况下,操作系统默认的栈尺寸很合理,但是在某些情况下,需要调整这个值:</p>

    <ul>
      <li>在默认栈尺寸较小的平台上(比如HP-UX),Apache可能会在使用一些需要较大栈尺寸的第三方模块时崩溃。这样的问题可以通过将<code class="directive">ThreadStackSize</code>设置为一个较大的值来解决。这种调整应当仅仅在第三方模块提供者明确要求的情况下才需要,或者是您通过诊断确定是由于栈空间太小而导致崩溃。</li>

      <li>在某些平台上,如果默认的栈空间大于服务器运行所需空间,那么将<code class="directive">ThreadStackSize</code>值降低到小于操作系统默认值可以让每个进程中允许生成的最大线程数量增加。这种类型的调整应该仅在测试环境中使用,并且对所有服务器进程进行充分的测试,因为处理某些罕见的请求需要较大的栈空间。一个很小的服务器配置变化就有可能使得当前的<code class="directive">ThreadStackSize</code>设置变得不合适。</li>
    </ul>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="User" id="User">User</a> <a name="user" id="user">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>实际服务于请求的子进程运行时的用户</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>User <var>unix-userid</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>User #-1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">兼容性</a></th><td>2.0版本起仅在全局服务器配置中可用</td></tr>
</table>
    <p><code class="directive">User</code>指令用于设置实际提供服务的子进程的用户。为了使用这个指令,服务器必须以<code>root</code>身份启动和初始化。如果你以非<code>root</code>身份启动服务器,子进程将不能够切换至非特权用户,并继续以启动服务器的原始用户身份运行。如果确实以<code>root</code>用户启动了服务器,那么父进程将仍然以<code>root</code>身份运行。<var>Unix-userid</var>是下列值之一:</p>

    <dl>
      <dt>一个用户名</dt>
      <dd>通过用户名引用用户</dd>

      <dt>"#"号后面跟一个用户编号</dt>
      <dd>通过用户编号引用用户</dd>
    </dl>

    <p>用于运行子进程的用户必须是一个没有特权的用户,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户亦需没有执行那些不应当被外界执行的程序的权限。强烈推荐你专门为Apache子进程建立一个单独的用户和组。一些管理员使用<code>nobody</code>用户,但是这并不能总是符合要求,因为可能有其他程序也在使用这个用户。</p>

    <div class="warning"><h3>安全</h3>
      <p>不要将<code class="directive">User</code>(或<code class="directive"><a href="#group">Group</a></code>)设置成<code>root</code> ,除非你明确知道自己在做什么,并且明白其风险所在。</p>
    </div>

    <p>特别提示:在<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>段中使用该指令已经不再被支持了。你可以使用<code class="program"><a href="../programs/suexec.html">suexec</a></code>的<code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>指令来达到这个目的。</p>

    <div class="note"><h3>注意</h3>
      <p>虽然<code class="directive">User</code>指令也存在于<code class="module"><a href="../mod/beos.html">beos</a></code>和<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>MPM中,但是事实上没用任何用处,只不过是个摆饰罢了。</p>
    </div>

</div>
</div>
<div id="footer">
<p class="apache">本文允许自由使用、分发、转载,但必须保留译者署名;详见:<a href="../translator_announcement.html#announcement">译者声明</a>。</p>
<p class="menu"><a href="../mod/index.html">模块索引</a> | <a href="../mod/directives.html">指令索引</a> | <a href="../faq/index.html">常见问题</a> | <a href="../glossary.html">词汇表</a> | <a href="../sitemap.html">站点导航</a></p></div>
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -