httpd.conf配置文件

1)全局配置项

ServerRoot:设置Http服务器的根目录,该目录下包括了运行web站点必须的子目录和文件,默认情况,httpd服务器的根目录为httpd的安装目录。在httpd.conf配置文件中,如果指定目录或文件位置时不使用绝对路径,则该目录或文件位置都认为是在服务器的根目录下。
Listen:设置httpd服务器监听的地址和网络端口号,默认为80
User:设置运行httpd进程的用户账号,默认为daemon
Group:设置运行httpd进程的组账号,默认为daemon
ServerAdmin:设置httpd服务器的管理员e-mail地址,可以通过此e-mail地址及时联系web站点的管理员
ServerName:设置web站点的完整主机名(主机名+域名)
DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径。
DirectoryIndex:设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开。
ErrorLog:设置错误日志文件的路径
LogLevel:设置记录错误日志的级别
CustomLog:设置访问日志文件的路径
PidFile:设置用于保存httpd进程号的文件
AddDefaultCharset:设置站点中的网页默认使用的字符集编码
Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用include配置项将其包含到httpd.conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。

区域配置项

<Directory />    //定义“/”目录区域的开始
Options FollowSymLinks //控制选项,允许使用符号链接
AllowOverride None //不允许隐含控制文件覆盖配置
Require all denied //禁止任何人访问此区域
</Directory> //定义“/”目录区域的结束

httpd服务的访问控制

客户机地址限制

Require all granted:表示允许所有主机访问
Require all denied:表示拒绝所有主机访问
Require local:表示仅允许本地主机访问
Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问
Require [not] ip <ip地址或网段列表>:表示允许或拒绝指定ip地址或网段访问

允许从任何客户机访问

<Directory "/usr/local/httpd/htdocs">
……………… //省略部分内容
Require all granted
</Directory>

允许ip

<Directory "/usr/local/httpd/htdocs">
……………… //省略部分内容
Require ip 173.17.17.173
</Directory>
不允许ip
<Directory "/usr/local/httpd/htdocs">
……………… //省略部分内容
<RequireAll>
Require all granted
Require not ip 192.168.0.0/24 192.168.1.0/24
</RequireAll>
</Directory>

添加用户授权配置

<Directory "/usr/local/httpd/htdocs">
AuthName "welcome"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
Require valid-user
</Directory>

AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
AuthType:设置认证的类型,Basic表示基本认证
AuthUserFile:设置用于保存用户账号、密码的认证文件路径
Require valid-user:要求只有认证文件中的合法用户才能访问,其中valid-user表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)

添加虚拟主机配置

基于域名的虚拟主机:为每个虚拟主机使用不同的域名,但其对应的IP地址 /设置test虚拟站点区域 /设置abc虚拟站点区域

vim httpd-vhosts.conf //修改现有内容,配置如下:

<VirtualHost www.test.com:80>           /
ServerAdmin webmaster@test.com
DocumentRoot "/var/www/test/html"
ServerName www.test.com
ServerAlias test.com
ErrorLog "logs/www.test.com-error_log"
CustomLog "logs/www.test.com-access_log" common
<Directory "/var/www/test/html">
Require all granted
</Directory>
</VirtualHost>

<VirtualHost www.abc.com:80>
ServerAdmin webmaster@abc.com
DocumentRoot "/var/www/abc/html"
ServerName www.abc.com
ServerAlias abc.com
ErrorLog "logs/www.abc.com-error_log"
CustomLog "logs/www.abc.com-access_log" common
<Directory "/var/www/abc/html">
Require all granted
</Directory>
</VirtualHost>

基于TCP PORT的虚拟主机:为每个虚拟主机使用不同的端口号 添加虚拟主机端口801 802httpd-vhosts.conf

Listen 801
<VirtualHost 192.168.36.120:801>
ServerAdmin webmaster@nihao.com
DocumentRoot "/var/www/nihao/html"
ServerName www.nihao.com
ServerAlias nihao.com
ErrorLog "logs/www.nihao.com-error_log"
CustomLog "logs/www.nihao.com-access_log" common
<Directory "/var/www/nihao/html">
Require all granted
</Directory>
</VirtualHost>

Listen 802
<VirtualHost 192.168.36.120:802>
ServerAdmin webmaster@hello.com
DocumentRoot "/var/www/hello/html"
ServerName www.heloo.com
ServerAlias hello.com
ErrorLog "logs/www.heloo.com-error_log"
CustomLog "logs/www.hello.com-access_log" common
<Directory "/var/www/hello/html">
Require all granted
</Directory>
</VirtualHost>