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

📄 examples.html.en

📁 Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
💻 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 2006 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 + -