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

📄 examples.html.en

📁 apache的软件linux版本
💻 EN
📖 第 1 页 / 共 2 页
字号:
<h2><a name="ipport" id="ipport">Mixed port-based and ip-based virtual	hosts</a></h2>    <p>The server machine has two IP addresses (<code>172.20.30.40</code> and    <code>172.20.30.50</code>) which resolve to the names    <code>www.example1.com</code> and <code>www.example2.org</code>    respectively. In each case, we want to run hosts on ports 80 and    8080.</p>    <div class="example"><h3>Server configuration</h3><p><code>        Listen 172.20.30.40:80<br />    Listen 172.20.30.40:8080<br />    Listen 172.20.30.50:80<br />    Listen 172.20.30.50:8080<br />		<br />    &lt;VirtualHost 172.20.30.40:80&gt;<br />    <span class="indent">        DocumentRoot /www/example1-80<br />        ServerName www.example1.com<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40:8080&gt;<br />    <span class="indent">        DocumentRoot /www/example1-8080<br />        ServerName www.example1.com<br />		</span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.50:80&gt;<br />    <span class="indent">        DocumentRoot /www/example2-80<br />        ServerName www.example1.org<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.50:8080&gt;<br />    <span class="indent">        DocumentRoot /www/example2-8080<br />        ServerName www.example2.org<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="mixed" id="mixed">Mixed name-based and IP-based    vhosts</a></h2>    <p>On some of my addresses, I want to do name-based virtual hosts, and    on others, IP-based hosts.</p>    <div class="example"><h3>Server configuration</h3><p><code>        Listen 80<br />		<br />    NameVirtualHost 172.20.30.40<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        DocumentRoot /www/example1<br />        ServerName www.example1.com<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        DocumentRoot /www/example2<br />        ServerName www.example2.org<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        DocumentRoot /www/example3<br />        ServerName www.example3.net<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    # IP-based<br />    &lt;VirtualHost 172.20.30.50&gt;<br />    <span class="indent">        DocumentRoot /www/example4<br />        ServerName www.example4.edu<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.60&gt;<br />    <span class="indent">        DocumentRoot /www/example5<br />        ServerName www.example5.gov<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="proxy" id="proxy">Using <code>Virtual_host</code> and    mod_proxy together</a></h2>    <p>The following example allows a front-end machine to proxy a    virtual host through to a server running on another machine. In the    example, a virtual host of the same name is configured on a machine    at <code>192.168.111.2</code>. The <code class="directive"><a href="../mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</a></code> directive is    used so that the desired hostname is passed through, in case we are    proxying multiple hostnames to a single machine.</p>    <div class="example"><p><code>    &lt;VirtualHost *:*&gt;<br />        ProxyPreserveHost On<br />        ProxyPass / http://192.168.111.2<br />        ProxyPassReverse / http://192.168.111.2/<br />        ServerName hostname.example.com<br />    &lt;/VirtualHost&gt;    </code></p></div>    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="default" id="default">Using <code>_default_</code>    vhosts</a></h2>  	<h3><a name="defaultallports" id="defaultallports"><code>_default_</code> vhosts    for all ports</a></h3>    <p>Catching <em>every</em> request to any unspecified IP address and    port, <em>i.e.</em>, an address/port combination that is not used for    any other virtual host.</p>    <div class="example"><h3>Server configuration</h3><p><code>        &lt;VirtualHost _default_:*&gt;<br />    <span class="indent">        DocumentRoot /www/default<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>    <p>Using such a default vhost with a wildcard port effectively prevents    any request going to the main server.</p>    <p>A default vhost never serves a request that was sent to an    address/port that is used for name-based vhosts. If the request    contained an unknown or no <code>Host:</code> header it is always    served from the primary name-based vhost (the vhost for that    address/port appearing first in the configuration file).</p>    <p>You can use <code class="directive"><a href="../mod/mod_alias.html#aliasmatch">AliasMatch</a></code> or    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to rewrite any    request to a single information page (or script).</p>        <h3><a name="defaultdifferentports" id="defaultdifferentports"><code>_default_</code> vhosts    for different ports</a></h3>    <p>Same as setup 1, but the server listens on several ports and we want    to use a second <code>_default_</code> vhost for port 80.</p>    <div class="example"><h3>Server configuration</h3><p><code>        &lt;VirtualHost _default_:80&gt;<br />    <span class="indent">        DocumentRoot /www/default80<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost _default_:*&gt;<br />    <span class="indent">        DocumentRoot /www/default<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>    <p>The default vhost for port 80 (which <em>must</em> appear before any    default vhost with a wildcard port) catches all requests that were sent    to an unspecified IP address. The main server is never used to serve a    request.</p>        <h3><a name="defaultoneport" id="defaultoneport"><code>_default_</code> vhosts    for one port</a></h3>    <p>We want to have a default vhost for port 80, but no other default    vhosts.</p>    <div class="example"><h3>Server configuration</h3><p><code>        &lt;VirtualHost _default_:80&gt;<br />    DocumentRoot /www/default<br />    ...<br />    &lt;/VirtualHost&gt;    </code></p></div>    <p>A request to an unspecified address on port 80 is served from the    default vhost any other request to an unspecified address and port is    served from the main server.</p>    	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="migrate" id="migrate">Migrating a name-based vhost to an    IP-based vhost</a></h2>    <p>The name-based vhost with the hostname    <code>www.example2.org</code> (from our <a href="#name">name-based</a> example, setup 2) should get its own IP    address. To avoid problems with name servers or proxies who cached the    old IP address for the name-based vhost we want to provide both    variants during a migration phase.<br />     The solution is easy, because we can simply add the new IP address    (<code>172.20.30.50</code>) to the <code>VirtualHost</code>    directive.</p>    <div class="example"><h3>Server configuration</h3><p><code>        Listen 80<br />    ServerName www.example1.com<br />    DocumentRoot /www/example1<br />		<br />    NameVirtualHost 172.20.30.40<br />		<br />    &lt;VirtualHost 172.20.30.40 172.20.30.50&gt;<br />    <span class="indent">        DocumentRoot /www/example2<br />        ServerName www.example2.org<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        DocumentRoot /www/example3<br />        ServerName www.example3.net<br />        ServerAlias *.example3.net<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>    <p>The vhost can now be accessed through the new address (as an    IP-based vhost) and through the old address (as a name-based    vhost).</p>	</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div><div class="section"><h2><a name="serverpath" id="serverpath">Using the <code>ServerPath</code>	directive</a></h2>    <p>We have a server with two name-based vhosts. In order to match the    correct virtual host a client must send the correct <code>Host:</code>    header. Old HTTP/1.0 clients do not send such a header and Apache has    no clue what vhost the client tried to reach (and serves the request    from the primary vhost). To provide as much backward compatibility as    possible we create a primary vhost which returns a single page    containing links with an URL prefix to the name-based virtual    hosts.</p>    <div class="example"><h3>Server configuration</h3><p><code>        NameVirtualHost 172.20.30.40<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        # primary vhost<br />        DocumentRoot /www/subdomain<br />        RewriteEngine On<br />        RewriteRule ^/.* /www/subdomain/index.html<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    DocumentRoot /www/subdomain/sub1<br />    <span class="indent">        ServerName www.sub1.domain.tld<br />        ServerPath /sub1/<br />        RewriteEngine On<br />        RewriteRule ^(/sub1/.*) /www/subdomain$1<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;<br />		<br />    &lt;VirtualHost 172.20.30.40&gt;<br />    <span class="indent">        DocumentRoot /www/subdomain/sub2<br />        ServerName www.sub2.domain.tld<br />        ServerPath /sub2/<br />        RewriteEngine On<br />        RewriteRule ^(/sub2/.*) /www/subdomain$1<br />        # ...<br />    </span>    &lt;/VirtualHost&gt;    </code></p></div>    <p>Due to the <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>    directive a request to the URL    <code>http://www.sub1.domain.tld/sub1/</code> is <em>always</em> served    from the sub1-vhost.<br /> A request to the URL    <code>http://www.sub1.domain.tld/</code> is only    served from the sub1-vhost if the client sent a correct    <code>Host:</code> header. If no <code>Host:</code> header is sent the    client gets the information page from the primary host.<br />     Please note that there is one oddity: A request to    <code>http://www.sub2.domain.tld/sub1/</code> is also served from the    sub1-vhost if the client sent no <code>Host:</code> header.<br />     The <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directives    are used to make sure that a client which sent a correct    <code>Host:</code> header can use both URL variants, <em>i.e.</em>,    with or without URL prefix.</p>	</div></div><div class="bottomlang"><p><span>Available Languages: </span><a href="../en/vhosts/examples.html" title="English">&nbsp;en&nbsp;</a> |<a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p></div><div id="footer"><p class="apache">Copyright 2007 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p><p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div></body></html>

⌨️ 快捷键说明

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