📄 ip-based.html
字号:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="Apache, 中文, 手册, 中文版, 中文手册, 中文版手册, 参考手册, 中文参考手册, 金步国" />
<meta name="description" content="Apache 2.2 中文版参考手册" />
<meta name="author" content="金步国" />
<link href="../style/css/manual-zip.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-zip-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<title>基于IP地址的虚拟主机 - Apache 2.2 中文版参考手册</title>
</head>
<body id="manual-page"><div id="page-header">
<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><p class="apache">Apache HTTP Server 版本2.2</p><img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./index.html"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path"><a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">文档</a> > <a href="../index.html">版本2.2</a> > <a href="./index.html">虚拟主机</a></div>
<div id="translation-info"> <a href="../translator_announcement.html#thanks">致谢</a> | <a href="../translator_announcement.html#announcement">译者声明</a> | 本篇译者:<a href="mailto:csfrank@citiz.net">金步国</a> | 本篇译稿最后更新:2006年1月18日 | <a href="../translator_announcement.html#last_new">获取最新版本</a></div>
<div id="page-content"><div id="preamble"><h1>基于IP地址的虚拟主机</h1>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="requirements" id="requirements">系统需求</a></h2>
<p>就像它的名字"<cite>基于IP</cite>"所暗示的那样,这样的服务器中<strong>每个基于IP的虚拟主机必须拥有不同的IP地址</strong>。可以通过配备多个真实的物理网络接口来达到这一要求,也可以使用几乎所有流行的操作系统都支持的虚拟界面来达到这一要求(详情请参见您的系统文档,这种功能一般被称作"IP别名",一般用"ifconfig"命令来进行设置)。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="howto" id="howto">如何配置Apache</a></h2>
<p>有两种配置方法来使apache支持多主机:为每个虚拟主机运行不同的<code class="program"><a href="../programs/httpd.html">httpd</a></code>守护进程;或者用同一个守护进程来支持所有虚拟主机。</p>
<p>以下情况使用多个守护进程:</p>
<ul>
<li>出于安全的考虑,比如说公司甲不希望公司乙的任何人能用除web以外的方式访问到他们的数据。在这种情况下,您需要启动两个守护进程。每个进程都使用不同的<code class="directive"><a href="../mod/mpm_common.html#user">User</a></code>, <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code>, <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>, <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>设置。</li>
<li>您能够为机器上的每个IP地址提供内存和文件描述符需求。您只能<code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>一个"通配符型"地址或一个特定的地址。所以不管出于什么原因,如果您需要侦听一个特定的地址,您就必须同时侦听所有特定的地址。(尽管可以让一个<code class="program"><a href="../programs/httpd.html">httpd</a></code>侦听N-1个地址,而让另一个侦听剩下的地址)</li>
</ul>
<p>以下情况使用单一守护进程:</p>
<ul>
<li>httpd的配置可以为多个虚拟主机共享而不引起麻烦。</li>
<li>机器要接受大量的访问请求,从而多启动一个守护进程会导致性能大幅度降低。</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="multiple" id="multiple">设置多个守护进程</a></h2>
<p>为每个虚拟主机创建一个不同的<code class="program"><a href="../programs/httpd.html">httpd</a></code>安装。每次安装都在配置文件中使用<code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>指令指定守护进程伺服的IP地址(或虚拟主机)。比如:</p>
<div class="example"><p><code>
Listen www.smallco.com:80
</code></p></div>
<p>建议您使用IP地址来取代域名(理由请参见关于<a href="../dns-caveats.html">DNS和Apache</a>)。</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="single" id="single">配置拥有多个虚拟主机的单一守护进程</a></h2>
<p>在这种情况下,单一的<code class="program"><a href="../programs/httpd.html">httpd</a></code>将伺服所有对主服务器和虚拟主机的请求。而配置文件中的<code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code>指令将为每个虚拟主机配置不同的<code class="directive"><a href="../mod/core.html#serveradmin">ServerAdmin</a></code>, <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>, <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>, <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code>, <code class="directive"><a href="../mod/mod_log_config.html#transferlog">TransferLog</a></code>, <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> 。例如:</p>
<div class="example"><p><code>
<VirtualHost www.smallco.com><br />
ServerAdmin webmaster@mail.smallco.com<br />
DocumentRoot /groups/smallco/www<br />
ServerName www.smallco.com<br />
ErrorLog /groups/smallco/logs/error_log<br />
TransferLog /groups/smallco/logs/access_log<br />
</VirtualHost><br />
<br />
<VirtualHost www.baygroup.org><br />
ServerAdmin webmaster@mail.baygroup.org<br />
DocumentRoot /groups/baygroup/www<br />
ServerName www.baygroup.org<br />
ErrorLog /groups/baygroup/logs/error_log<br />
TransferLog /groups/baygroup/logs/access_log<br />
</VirtualHost>
</code></p></div>
<p>建议您使用IP地址来取代域名(理由请参见关于<a href="../dns-caveats.html">DNS和Apache</a>)。</p>
<p>除了创建进程的指令和其他一些指令外,几乎<strong>所有的</strong>配置指令都能用于<code><VirtualHost></code>指令中。您可以使用<a href="../mod/directives.html">指令索引</a>在<a href="../mod/directive-dict.html#Context">作用域</a>中查询一个指令是否可以用于<code><VirtualHost></code>指令。</p>
<p>如果使用了<a href="../suexec.html">suEXEC包装</a>,那么<code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>指令也可以在<code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>段中使用。</p>
<p><em>安全警示</em>:当指定日志文件时,请记住有安全风险。一些别有用心的人会在那个目录拥有写权限。请参见<a href="../misc/security_tips.html">安全方面的提示</a>获取详情。</p>
</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 + -