文章目录
- 前言
- 一、全局环境配置
- 二、主服务的配置
- [二、 Directory Configuration(目录配置)](#二、 Directory Configuration(目录配置))
- [三、 Virtual Hosts(虚拟主机配置)](#三、 Virtual Hosts(虚拟主机配置))
- [四、Module Configuration(模块配置)](#四、Module Configuration(模块配置))
- [五、 Logging Configuration(日志配置)](#五、 Logging Configuration(日志配置))
- [六、 Security Configuration(安全配置)](#六、 Security Configuration(安全配置))
- [七、 Performance Configuration(性能配置)](#七、 Performance Configuration(性能配置))
- 总结
前言
尽管图形化配置比较快捷,但配置功能远没有文本配置文件强大灵活,因此,使用文本配置文件仍然是主流的配置web站点的方法。Apache服务器的主配置文件是httpd.conf,在/etc/httpd/conf/目录下,用vim编辑器打开配置文件,发现配置内容相当多,共计355行,但大部分为注释内容。
在vim编辑器中运行set nu命令,为配置文件添加行号,便于配置。整个配置文件主要包括全局环境、主服务配置和虚拟主机等部分,在实际应用中根据需求灵活进行配置,配置文件的语句语法为:
"配置参数名称 参数值"
例如"ServerRoot /etc/httpd"配置语句中"ServerRoot"就是配置参数名称,"/etc/httpd"则是参数值,配置语句可以放在文件中的任何地方,但最好放在相应的部分,便于阅读。
一、全局环境配置
全局环境部分在配置文件前半部分,如图8.7所示。全局环境部分进行任何一项配置将影响整个apache服务,可以看作编程中的全局变量,只要apache服务在运行,全局环境的配置就起作用。全局环境部分常用字段如表所示。
全局环境部分常用字段
类别 | 字段 | 说明 |
---|---|---|
全局环境 | ServerRoot | 设置服务器的配置文件,日志和错误文件的根目录 |
全局环境 | TimeOut | 设置接受与发送数据的超时限制 |
全局环境 | KeepAlive | 是否启用HTTP持久链接 |
全局环境 | MaxKeepAliveRequests | 设置一个持久链接中允许的最大请求数量 |
全局环境 | KeepAlive TimeOut | 设置一个持久链接中服务器在两次请求之间等待的秒数 |
例如:
apache
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 60
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
二、主服务的配置
这部分配置了 Apache 的默认网站,如果服务器上只有一个网站,那么在这里配置就可以了。
Listen
: 指定 Apache 服务监听的端口。ServerAdmin
: 管理员的邮箱地址。ServerName
: 服务器的域名。UseCanonicalName
: 是否使用客户端提供的主机名和端口构建自引用 URL。DocumentRoot
: 网站文件存放的目录。
例如:
apache
Listen 80
ServerAdmin root@localhost
ServerName www.example.com:80
UseCanonicalName Off
DocumentRoot "/var/www/html"
二、 Directory Configuration(目录配置)
这部分配置了对特定目录的访问权限和行为。
<Directory>
: 指定要配置的目录路径。Options
: 设置目录的可选行为,如是否允许索引等。AllowOverride
: 指定是否可以使用.htaccess
文件覆盖配置。Order
,Allow
,Deny
: 控制对目录的访问权限。
例如:
apache
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
三、 Virtual Hosts(虚拟主机配置)
这部分配置了虚拟主机,允许一个 Apache 服务器托管多个网站。
NameVirtualHost
: 定义虚拟主机监听的端口和 IP 地址。<VirtualHost>
: 定义虚拟主机的配置,包括ServerAdmin
,DocumentRoot
,ServerName
等。
例如:
apache
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@www.example.com
DocumentRoot /www/docs/example
ServerName www.example.com
ErrorLog logs/www.example.com-error_log
CustomLog logs/www.example.com-access_log common
</VirtualHost>
四、Module Configuration(模块配置)
这部分配置了 Apache 模块的加载和行为。
LoadModule
: 加载 Apache 模块。<IfModule>
: 根据是否加载了特定模块来条件性地包含配置。
例如:
apache
LoadModule auth_basic_module modules/mod_auth_basic.so
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.html$ - [L]
</IfModule>
五、 Logging Configuration(日志配置)
这部分配置了 Apache 的日志记录。
ErrorLog
: 指定错误日志存放的位置。LogLevel
: 设置日志级别。LogFormat
: 定义日志的格式。CustomLog
: 指定日志记录的位置和格式。
例如:
apache
ErrorLog logs/error_log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
六、 Security Configuration(安全配置)
这部分配置了 Apache 的安全相关设置。
AllowOverride
: 控制.htaccess
文件的使用。<Files>
,<FilesMatch>
: 控制对特定文件的访问。AuthType
,Require
: 设置身份验证。
例如:
apache
<Files ".htaccess">
Order allow,deny
Deny from all
Satisfy All
</Files>
七、 Performance Configuration(性能配置)
这部分配置了 Apache 的性能相关设置。
MaxClients
: 设置最大客户端连接数。StartServers
,MinSpareServers
,MaxSpareServers
: 设置服务器启动时的参数。EnableMMAP
,EnableSendfile
: 设置文件发送优化。
例如:
apache
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 100
MaxRequestsPerChild 4000
</IfModule>
这些是 Apache 配置文件的主要部分,通过这些配置,管理员可以精细控制 Apache 服务器的行为,以满足不同的需求和环境。每个部分都可以通过添加、修改或删除配置指令来调整服务器的运行方式。
总结
这些是 Apache 配置文件的主要部分,通过这些配置,管理员可以精细控制 Apache 服务器的行为,以满足不同的需求和环境。每个部分都可以通过添加、修改或删除配置指令来调整服务器的运行方式