<-
Apache > HTTP Server > �ĵ� > �汾2.2 > ��������
���� ��л | �������� | ��ƪ���ߣ��𲽹� | ��ҳ�����£�2006��1��17�� | ��ȡ���°汾

��������ʾ��

���ĵ���ͼ����һЩ��������������ʱ�����ʼ������⡣��Щʾ������չʾ�������һ����������ͨ�����������Ļ�������IP������������������webվ�㡣��һ�ݹ��������һ������������󹹽����ڶ����������վ���˵���ĵ�Ҳ�ܿ�ͻ������

top

��һ��IP��ַ�����ж������������webվ��

���ķ�������ֻһ��IP��ַ������DNS���кܶ�����(CNAMES)ӳ�䵽�����������������Ҫ���������������www.example.com��www.example.org����վ�㡣

ע��

������Apache�����������д���һ�����������������Զ�������DNS�ж�����������Ӧ���¡��������Լ���DNS�����������ָ������IP��ַ������������޷���������webվ��ġ�������������hosts�ļ��������һ��Ŀ�����в��ԣ������ַ�������������Щ����Щhosts�ļ��Ļ�����ʹ�á�

����������

# ȷ��Apache�ڼ���80�˿�
Listen 80

# Ϊ��������������IP��ַ�ϼ���
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example.com

# ������������������ָ��

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org

# ������������������ָ��

</VirtualHost>

��Ϊ�Ǻ�ƥ������IP��ַ���������������������κ�������Ϊwww.example.com���ȳ����������ļ��У�������ӵ��������ȼ���������Ϊ��Ĭ������������������ζ�����һ����������ij��ServerNameָ����ƥ�䣬�������ɵ�һ��<VirtualHost>�����ŷ���

ע��

�����Ը�⣬��������ȷ����IP��ַ��ȡ��"*"������������£�VirtualHost�IJ���������NameVirtualHost�IJ��������

NameVirtualHost 172.20.30.40

<VirtualHost 172.20.30.40>
# ���� ...

Ȼ����������IP��ַ�޷�ȷ����ʱ��ʹ��"*"�Ǻܷ���ģ�����˵������ISP�������õ��Ƕ�̬IP��ַ��������ʹ����ij�ֶ�̬��������ϵͳʱ����Ϊ"*"ƥ���κ�IP��ַ����������������£�����IP��ַ��α仯����������Ҫ����������á�

�������þ������ھ�����������ʹ�û�����������������ʱ��Ҫ�õ��ġ���ʵ�ϣ�����һ����������������ò����������⣺����Ϊ��ͬ��IP��ַ���Ƕ˿��ṩ��ͬ�����ݡ�

top

�ڶ���һ��IP�������ʹ�û�������������������

ע��

���������۵��κμ����������ƹ㵽ʹ������������IP��ַ��

������������IP��ַ��һ��(172.20.30.40)������������server.domain.com ������һ��(172.20.30.50)���ڹ���������������������

����������

Listen 80

# "��"�����������ڣ�172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver

# ��������һ��IP��ַ
NameVirtualHost 172.20.30.50

<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
ServerName www.example.com

# ������������������ָ�� ...

</VirtualHost>

<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org

# ������������������ָ�� ...

</VirtualHost>

�κβ������172.20.30.50�����󶼽��������������ŷ������ύ��172.20.30.50ȴû����������û��"Host:"ͷ�����󣬶�����www.example.com�ŷ���

top

�ڲ�ͬ��IP�ĵ�ַ(����һ���ڲ���һ���ⲿ��ַ)���ṩ��ͬ������

������������IP��ַ(192.168.1.1��172.20.30.40)���������λ���ڲ�(������)������ⲿ(������)֮�䡣���ⲿ������server.example.comָ���ⲿ��ַ(172.20.30.40)�������ڲ���ָ���ڲ���ַ(192.168.1.1)��

����������Ϊ�����ڲ����ⲿ�������ṩͬ�������ݣ���ֻ��Ҫһ��<VirtualHost>���öξͿ����ˡ�

����������

NameVirtualHost 192.168.1.1
NameVirtualHost 172.20.30.40

<VirtualHost 192.168.1.1 172.20.30.40>
DocumentRoot /www/server1
ServerName server.example.com
ServerAlias server
</VirtualHost>

���ڣ��Ӳ�ͬ�������ύ�����󶼻���ͬһ��<VirtualHost>�����ŷ���

ע��

�������У�������ʹ��server�������������server.example.com���ȫ����

������һ�������������������������"*"����������IP��ַ�������Ϳ��Զ����еĵ�ַ��������ͬ�������ˡ�

top

�ڲ�ͬ�Ķ˿������в�ͬ��վ��

���������ͬһ��IP�IJ�ͬ�˿��ŷ���������������Խ�����NameVirtualHostָ���ж���˿ڵķ������ﵽ���Ŀ�ġ��������ʹ�ò���"name:port"��<VirtualHost name:port>����ֱ����Listenָ��������ý��޷���Ч��

����������

Listen 80
Listen 8080

NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080

<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot /www/domain-80
</VirtualHost>

<VirtualHost 172.20.30.40:8080>
ServerName www.example.com
DocumentRoot /www/domain-8080
</VirtualHost>

<VirtualHost 172.20.30.40:80>
ServerName www.example.org
DocumentRoot /www/otherdomain-80
</VirtualHost>

<VirtualHost 172.20.30.40:8080>
ServerName www.example.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>

top

��������IP����������

һ��������IP��ַ(172.20.30.40��172.20.30.50)�ֱ��Ӧ����www.example.com��www.example.org���������£�

����������

Listen 80

<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>

<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>

�������������������ô��û�г�������һ��<VirtualHost>���е�����(���磬��localhost������)�����������������ŷ���

top

���û��ڶ˿ںͻ���IP����������

������ķ�����������IP��ַ(172.20.30.40��172.20.30.50)�ֱ��Ӧ����www.example.com��www.example.org ����ÿ������������ϣ����80�˿ں�8080�˿ڷ���������վ���������������ã�

����������

Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080

<VirtualHost 172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example.com
</VirtualHost>

<VirtualHost 172.20.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example.com
</VirtualHost>

<VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example.org
</VirtualHost>

<VirtualHost 172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example.org
</VirtualHost>

top

���û��������ͻ���IP����������

������һЩ��ַ�����û�������������������������һЩ��ַ�����û���IP������������

����������

Listen 80

NameVirtualHost 172.20.30.40

<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>

<VirtualHost 172.20.30.40>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>

<VirtualHost 172.20.30.40>
DocumentRoot /www/example3
ServerName www.example3.net
</VirtualHost>

# IP-based
<VirtualHost 172.20.30.50>
DocumentRoot /www/example4
ServerName www.example4.edu
</VirtualHost>

<VirtualHost 172.20.30.60>
DocumentRoot /www/example5
ServerName www.example5.gov
</VirtualHost>

top

��<Virtual_host>��mod_proxyģ��һ��ʹ��

�������������һ��ǰ�˻�������һ�����������������ϵ�����������������ʾ���У���192.168.111.2������������һ��ͬ����������������������һ��ͬһ̨�����ϴ����˶����������ProxyPreserveHost On ָ����ȷ��ָ����������˳��ͨ������

<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://192.168.111.2
ProxyPassReverse / http://192.168.111.2/
ServerName hostname.example.com
</VirtualHost>

top

ʹ��"_default_"��������

Ϊ���ж˿�����"_default_"��������

�������ÿ��Բ�������ָ��ûָ����IP��ַ�Ͷ˿ڵ����󡣱��磺һ��û���κ���������ʹ�õĵ�ַ/�˿ڶԡ�

����������

<VirtualHost _default_:*>
DocumentRoot /www/default
</VirtualHost>

����һ��ʹ��ͨ����˿ڵ�Ĭ����������������Ч�ķ�ֹ���������������ա�

���һ����ַ/�˿ڶ��Ѿ���һ��������������������ʹ�ã���ô"_default_"�������������ᴦ���������ַ/�˿ڶԵ��������һ��"Host:"����ͷ�а���δ֪��Ϣ�����߸ɴ��û�У���ô���ᱻ��һ��������������������(Ҳ�����������ļ������ȳ��ֵ�ʹ�����Ǹ���ַ/�˿ڶԵ���������)����

��������AliasMatch��RewriteRule����д�κ�����ʹ��ָ��һ������Ϣҳ��(��ű�)��

Ϊ��ͬ�Ķ˿�����"_default_"��������

���һ��һ�������������÷����������ܶ�˿ڶ��ڶ���"_default_"����������������80�˿ڡ�

����������

<VirtualHost _default_:80>
DocumentRoot /www/default80
# ...
</VirtualHost>

<VirtualHost _default_:*>
DocumentRoot /www/default
# ...
</VirtualHost>

����80�˿ڵ�"_default_"��������(��������������ʹ��ͨ����˿ڵ���������֮ǰ)�Ჶ�����з���һ��δָ����IP��ַ�������������������������ŷ��κ�����

Ϊ����һ���˿�����"_default_"��������

�������ֻ����80�˿��Ͻ���Ψһ��һ��"_default_"��������������Ӧ���������ã�

����������

<VirtualHost _default_:80>
DocumentRoot /www/default
...
</VirtualHost>

����һ��δָ����ַ��80�˿ڵ����󽫻���������������ŷ���������δ�趨��ַ�������˿ڵ������������������ŷ���

top

��һ����������������������ֲΪһ������IP����������

���һ������www.example.org��������������(����������������ʾ���еĵڶ���)�õ����Լ���IP��ַ��Ϊ�˱���һЩ������������������������ֲ�ڼ��Զ�����������ϵĽ��������ǿ��Բ���һ�ֹ��ɷ�����ͬʱ�ṩ�¾�����IP��ַ�Ľ�����

�ﵽ���Ŀ�ĺܼ򵥡���Ϊ����ֻҪ�򵥵İ��µ�ַ(172.20.30.50)����VirtualHostָ������ˡ�

����������

Listen 80
ServerName www.example.com
DocumentRoot /www/example1

NameVirtualHost 172.20.30.40

<VirtualHost 172.20.30.40 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
# ...
</VirtualHost>

<VirtualHost 172.20.30.40>
DocumentRoot /www/example3
ServerName www.example.net
ServerAlias *.example.net
# ...
</VirtualHost>

����������������Ϳ������µ�ַ(����Ϊһ������IP����������)�;ɵ�ַ(����Ϊһ��������������������)ͬʱ���з����ˡ�

top

ʹ��ServerPathָ��

���������ͬһ����������������������������������������Ϊ��ƥ����ȷ�������������ͻ��˱��뷢����ȷ��"Host:"ͷ�����ɵ�ʹ��HTTP/1.0�Ŀͻ����޷�����������ͷ������Apache���޷����ͻ�����Ҫ�����ĸ���������(�����������������ŷ��������)��Ϊ�˾����ṩ���¼����ԣ����ǿ����ṩһ������������������һ��ҳ�棬��ҳ���м���ָ���������������������URLǰ׺�����ӡ�

����������

NameVirtualHost 172.20.30.40

<VirtualHost 172.20.30.40>
# ����������
DocumentRoot /www/subdomain
RewriteEngine On
RewriteRule ^/.* /www/subdomain/index.html
# ...
</VirtualHost>

<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub1
ServerName www.sub1.domain.tld
ServerPath /sub1/
RewriteEngine On
RewriteRule ^(/sub1/.*) /www/subdomain$1
# ...
</VirtualHost>

<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub2
ServerName www.sub2.domain.tld
ServerPath /sub2/
RewriteEngine On
RewriteRule ^(/sub2/.*) /www/subdomain$1
# ...
</VirtualHost>

����ServerPathָ������ã����͵�http://www.sub1.domain.tld/sub1/�������ܻ���sub1-vhost���ŷ���
����ͻ��˷�������ȷ��"Host:"ͷ�����͵�http://www.sub1.domain.tld/������ֻ�ᱻsub1-vhost���ŷ������û�з���"Host:"ͷ���ͻ��˽���õ����������������͵���Ϣҳ�档

��ע�⣬���ﻹ��һ��С���⣺����ͻ���û�з���"Host:"ͷ�����͵�http://www.sub2.domain.tld/sub1/�������ǻᱻsub1-vhost���ŷ���

RewriteRuleָ������ȷ����ȷ������"Host:"ͷ�Ŀͻ��˿�������ʹ��������URL����������˵��ʹ�û�ʹ��URLǰ׺��