apache2.2 virtual host configuration

WBOY
Release: 2016-08-08 09:24:28
Original
1242 people have browsed it

1. Modify httpd.conf

Open the appserv installation directory, find the httpd.conf file, and remove the # sign in front of the following two lines of text.

[plain] view plaincopy

  1. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
Remove # means to enable the virtual host function of apache.

[plain] view plaincopy

  1. #Include conf/extra/httpd-vhosts.conf
Removing the # in this line means importing the virtual host configuration from the conf/extra/httpd-vhosts.conf file

II , modify httpd-vhosts.conf

Open the file and see content similar to the following. The configuration of the virtual host is also configured according to the following content. The content is explained below

[plain] view plaincopy

  1. NameVirtualHost *:80
  2. ServerAdmin web master@dummy-host.www.phpStudy.net
  3. DocumentRoot "C: /Program Files/Apache2/docs/dummy-host.www.phpStudy.net"
  4. ServerName dummy-host.www.phpStudy.net
  5. ServerAlias ​​www.dummy-host.www.phpStudy.net
  6. ErrorLog "logs/dummy-host.www.phpStudy.net-error.log"
  7. CustomLog "logs/dummy-host.www.phpStudy.net-access.log" common
NameVirtualHost *:80

Note 1: NameVirtualHost specifies the IP address or domain name used by the virtual host, but it is best to use the IP address. NameVirtualHost is a necessary directive when using domain name-based virtual hosts. Multiple NameVirtualHost can be defined.
Note 2: All requests that match the NameVirtualHost or tag definition will be processed as a virtual host, and the main server will ignore it. For requests where NameVirtualHost is defined but the tag is not defined, the server will not be able to find the corresponding virtual host and will not be able to process it. Therefore, each parameter defined by NameVirtualHost must match at least one .
Note 3: If you set NameVirtualHost or to *:80, all requests for port 80 will be processed by the virtual host, and the requests will be directed to a certain virtual host based on the domain name. If there is a request from port 80 and the requested domain name is not configured as a virtual host, it will point to the first virtual host. This way the main server will not be able to receive any requests from port 80. A virtual host must also be configured for the main server for this purpose.

ServerAdmin Administrator Email

DocumentRoot Website Directory (Note: If the path in the website directory has spaces, please add double quotes at both ends of the path)

ServerName Domain name to be bound (required)

ServerAlias ​​to be bound The alias of a specified virtual host. (Optional, if there are multiple domain names, separate them with spaces. If not, remove the line)

Supports two wildcards: * and ?, such as *.abc.com, which means that any second-level domain name of abc.com is Accessible.

CustomLog user log file (optional, remove this line if not needed)

ErrorLog error log (optional, remove this line if not needed)

Virtual host based on IP address

[plain] view plaincopy

  1. DocumentRoot /www/example1
  2. ServerName www.example.com

[plain] view plaincopy

  1. DocumentRoot /www/example2
  2. ServerName www. example.org
Each virtual host can define multiple IPs, separated by spaces

Mixed use of various virtual hosts

[plain] view plaincopy

  1. Listen 80
  2. Listen 81
  3. NameVirtualHost 172.20.30.40
  4. DocumentRoot /www /example1
  5. ServerName www.example.com
  6. DocumentRoot /www/example2
  7. ServerName www.example.org
  8. NameVirtualHost 172.20.30.40:81
  9. DocumentRoot /www/example3
  10. ServerName www.example3.net
  11. # IP-based
  12. DocumentRoot /www/example4
  13. ServerName www.example4.edu
  14. DocumentRoot /www/example5
  15. ServerName www.example5.gov

Problems when virtual hosts are mixed

1. Mixed use of virtual hosts can be understood like this: one line NameVirtualHost All virtual hosts defined by the directive are grouped together; the group is the same as an IP-based virtual host. That is, the entire group defined by a row of NameVirtualHost is regarded as an IP-based virtual host.
2. The port specified by the virtual host must be defined by Listen. If the virtual host does not specify a port, it is assumed to be port 80. If NameVirtualHost * is defined this way, refers to all defined ports for all addresses.
3. More specific address definitions are preferred. For example, the NameVirtualHost directive defines *:80, and an IP-based virtual host is defined as 192.168.0.1:80. If there is a request for 192.168.0.1:80 at this time, the request will be directed to 192.168.0.1:80 first. Defined virtual host. So to avoid confusion, do not define address ranges that overlap or include each other.
4. A virtual host can be both domain name-based and IP-based. Like the last virtual host in the previous example. In this way, requests that meet both definitions will be directed to the same virtual host. Sometimes this can be done when distinguishing between internal and external network access to a virtual host, because requests from the internal network may be different from requests from the external network, but they need to point to the same virtual host.

Use "_default_" virtual host

This virtual host can be understood as an IP-based virtual host

[plain] view plaincopy

  1. DocumentRoot /www/default
This virtual host will take over the IP and port of other virtual hosts Unmatched request. However, in this case, the main server will not process any requests. Therefore it is necessary to configure the main server as a virtual host.

Local machine proxy virtual host running on other machines

[plain] view plaincopy

  1. ProxyPreserveHost On
  2. ProxyPass /foo/no !
  3. ProxyPass /foo http://192.168.111.2
  4. ProxyPassReverse /foo http://192.168.111.2
  5. ServerName hostname.example.com
First, this is an IP-based virtual host, which receives and processes the pair Request for IP address 158.29.33.248.
2. ProxyPass /foo http://192.168.111.2 will convert the request for http://158.29.33.248/foo into a proxy request, which points to http://192.168.111.2.
3. ProxyPass /foo/no! Do not proxy requests for /foo/no. This must be placed before the normal proxy directive.
4. ProxyPreserveHost On means transmitting the Host information of the original request to the proxy machine.
5. ProxyPassReverse /foo http://192.168.111.2 can ensure that after the request URL is redirected on other machines, it can be processed consistently on this machine. See the manual section about reverse proxy for details.
6. The same is true for domain name-based virtual hosts. No matter what type of virtual host it is, it only handles the requests it handles.

Configuration example

Requirement 1:

This is an IP-based virtual host usage example

A project data application. In order to prevent normal access due to domain name resolution problems, IP is used to access the interface. For example: http://61.122.3.6:8080/ This way. The configuration of the virtual host is as follows:

1. Add a line under Listen 80 in httpd.conf, the content is: Listen 8080, that is, listen to the 8080 port

2. Configure the virtual host configuration

[plain] view plaincopy

  1. #NameVirtualHost 61.122.3.6:8080 This line is not required. After testing, the virtual host based on IP address does not need to set the NameVirtualHost item.
  2. ServerAdmin webmaster@dummy-host.www.phpStudy.net
  3. DocumentRoot "d :/web/openj"

The above introduces the apache2.2 virtual host configuration, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template