The previous article describes how to install and start the Apache Web server. This article describes how to configure it to achieve special functions.
Apache configuration commands are divided into two types: one is used by core modules such as core and HTTP, which must be included in the httpd. conf file, and the other is used by standard or third-party modules.
1. Basic configuration instructions
The configuration in httpd. conf can be divided into three parts: master server, container configuration, and extension.
Master server: used to configure core service parameters as global commands, such as defining host names and listening ports.
Container configuration section: configuration section in the <container Name>... </container Name> style, such as virtual host, directory, and file permissions
Extended Part: External configuration files loaded in the include Mode
1.1 master server configuration
Servername defines the host name. If no host name exists, replace it with an IP address.
Serverroot defines the root directory where the httpd server process is installed. The value of layout varies.
DocumentRoot defines the root directory that provides the page documentation. This directory is the root directory that receives the URL request and must use an absolute path. If the path contains spaces, quotation marks are required.
Serveradmin specifies the email address of the website administrator
Alias/ScriptAlias define alias
User/Group specifies the user name and group for running the server process
Listen specifies the server listening port
Loadmodule/LoadFile: load the module or target file
Errordocument code content specifies the processing page or content of the error code. The page can be a script or string.
Options is used to specify the processing features in the directory, which has the following values, which can be combined through +-
Execcgi allows the current directory to execute CGI scripts
Supported des allows the SSI Function
Indexes account index function, that is, if the index file is not specified by the direcotryindex command, the list of files in the request directory is returned.
Followsymlinks allows the directory to use Symbolic Links
All features except Multiviews
Multiviews enables the multi-view feature provided by the mod_negotiations Module
1.2 container configuration
It is worth noting that container configurations can be nested as needed.
<Ifmodule! Module name> determine whether the module is loaded, and decide whether to execute the container configuration based on the true or false. The module name can be added! Indicates not loaded
<Ifdefine def> judge whether def is defined, and decide whether to execute the container configuration based on the true or false. Add def before! Undefined
The configuration in the <directory dir> area takes effect only for Dir, which is used to limit the configuration range or overwrite the global configuration. The directory can be a full path or a wildcard matching directory. Note that *? [] Cannot cross/
If you need regular expression matching, add ~
<Directorymatch> same as above, but it does not need to be added when it accepts regular expressions ~
<File> only for file Definition
<Filematch> same as above
<Location> access control for network URLs
<Locationmatch> same as above, regular matching is acceptable
Note that container rules have a priority in applications. Apache processes the priority from high to low as follows: direcotry. htacess direcotrymatch file filematch location high-priority rules will invalidate low-priority rules. At the same time, directory containers are sorted in alphabetical order by directory name. Mixing or improper use of these Rules may cause security issues. Therefore, it is not recommended to use complex rules. Restrict symbolic links when using files and directories.
1.3 extensions
There is an extra directory in the default configuration folder of Apache, which defines common configurations of other modules and can be loaded through the include command.
Common configuration functions are as follows:
Httpd-autoindex.conf automatic index Configuration
Configuration of httpd-info.conf mod_status info module
Httpd-mpm.conf MPM Configuration
Httpd-ssl.conf SSL Configuration
Httpd-userdir.conf user directory configuration, used to provide web sites for multiple users on a server, map users to their own directory
Httpd-vhosts.conf Virtual Host Configuration
1.3.1 mod-Dir
This module allows you to specify the index file. The configuration is as follows:
Directoryindex index.html index. php
In this way, when the user accesses the root directory, if there is a corresponding file below, the server will redirect the user to the index file page.
1.3.2 mod-Autoindex
1.3.3 mod-userdir
1.4 Configuration Tool
The localization tool Webmin needs to be installed locally and opened on the webpage. You can set it in Gui mode.
In Windows, zecos apacheconf can read remote httpd. conf via SSH to display the configuration.
2. Virtual Host Configuration
A vm allows us to open multiple websites on a single machine to direct access to different website pages through different domain names or IP addresses.
2.1 name a VM
After the domain name-based VM function is enabled, the server can direct to different sites based on the host header in the request. You must configure DNS cooperation before applying the domain name-based VM.
The configuration is relatively simple. The following example is a simple example.
## Use name-based virtual hosting.#NameVirtualHost *:80## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for requests without a known# server name.#<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /www/docs/dummy-host.example.com ServerName dummy-host.example.com ServerAlias dummy1.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common</VirtualHost>
A website is created here, which listens to all requests of 80 on the local host. However, this VM only provides the website service about dummy.example.com. because it uses an alias, it can also be accessed using an alias, however, the premise is that DNS records are configured. Note that IPv6 addresses should be enclosed in brackets.
Naming-based virtual hosts do not support http1.0 and earlier protocols, and do not support SSL protocol (the SSL protocol requires an independent host name to match the IP address ). To support SSL, you need to listen to port 443 and establish site services on this port. For more information, see the example of the httpd_ssl.conf file.
2.2 IP Virtual Host
IP virtual hosts require that our server host be configured with multiple IP addresses. We configure different websites to different IP addresses, which can be multiple virtual interface addresses of the same physical Nic.
The configuration method is as follows:
<VirtualHost 192.168.0.2:80> ServerAdmin postmaster@dummy-host2.localhost DocumentRoot "D:/xampp/htdocs/dummy-host2.localhost" ServerName dummy-host2.localhost ServerAlias www.dummy-host2.localhost ErrorLog "logs/dummy-host2.localhost-error.log" CustomLog "logs/dummy-host2.localhost-access.log" combined</VirtualHost>
2.3 dynamic VM Method
For other methods, such as creating a large number of virtual hosts through the vhost_alias_module or rewrite_module, this function is generally used by website providers. For details, refer to Apache documentation.
3. Performance Configuration
4. Log Control