WWW服务器配置
- 理论
WWW服务又称Web服务,客户机和服务器都遵循HTTP协议,默认采用80端口通信。 - 配置
软件名称为Apache,守护进程(服务名)为httpd。
RHEL Server 5默认不安装Apache软件包,需要手工安装。
安装启动简单测试
- 安装
yum install httpd
- 启动
service httpd start
此时打开网页页面是这样的:
- 建立index.html
vi /var/www/html/index.html welcome
详细配置说明
与apache服务器相关的主要目录和文件如下:
```
/etc/httpd/conf/httpd.conf apache服务器主配置文件
/var/www/ 默认Web站点的根目录
/var/www/html 网页文档的默认根目录
/var/log/httpd/access_log 访问日志文件
/var/log/httpd/error_log 错误日志文件
.htaccess 基于目录的配置文件,包含其所在目录的访问控制和认证等参数
```
主配置文件/etc/httpd/conf/httpd.conf介绍:
文件格式
httpd.conf(该文件较长差不多快1000行)主要由三部分组成:全局环境(Section1:Global Environment)、主服务器配置(Section 2:Main server configuration)和虚拟主机(Section 3:Virtual Hosts)。
文件格式有以下规则:
a.配置语句的语法格式为“参数名称 参数值”
b.用#表示注释
虽然配置语句可以放置在文件的任何位置,但为了方便管理,最好将配置语句放在其相应的部分。
最好配置前先备份默认的httpd.conf
第一区:全局环境参数
这里配置的参数将影响整个Apache服务器的行为;
例如Apache能够处理的并发请求的数量等。
ServerRoot:相对根目录,指出服务器保存其配置文件、出错和日志文件等的根目录。默认为/etc/httpd,该目录一般含有conf和logs子目录。
ServerRoot "/etc/httpd"
Timeout:接收和发送前超时秒数,即响应时间,以秒为单位,默认为120秒。如果超过这段时间仍然没有传输任何数据,那么Apache服务器将断开与客户端的连接。
Timeout 120
KeepAlive On
#开启持久性连接功能。即当客户端连接到服务器,下载完数据后仍然保持连接状态。 默认为Off
MaxKeepAliveRequests 100
#一个连接服务的最多请求次数,默认为100,设为0则没有限制。
KeepAliveTimeout 15
#允许保持连接时,可指定连续两次连接的间隔时间,如果超出设置值则被认为连接中断。缺省为15秒。 即在关闭连接前等待下一次请求的时间。如果服务器已经完成了一次请求,但在超过了该指令设置的时间间隔后,还没有收到下一次请求,那么服务器就断开连接。
Listen 80
#服务器监听的端口号。 默认会在本机的所有可用IP地址上的TCP80端口监听客户端的请求。
第二区:主服务器配置
ServerAdmin:您的邮件地址,当客户端访问服务器发生问题时,服务器会向客户端返回错误提示信息,其中包括管理员的E-mail地址,默认的E-mail地址为root@主机名
ServerAdmin root@rhel
ServerName 服务器名,指定Apache用于识别自身的名字和端口号。如果此服务器有域名,则填入域名,否则填入服务器IP地址。
DocumentRoot:您的文档的根目录。默认情况下,任何的请求从这个目录进行应答。
DocumentRoot "/var/www/html"
DirectoryIndex:默认文档,指在Web浏览器仅输入Web站点的域名或IP地址就显示的网页,默认不指定网页名称时,将显示指定目录下地index.html或index.html.var
DirectoryIndex index.html index.html.var
访问控制(基于主机)
Deny:定义拒绝访问列表。
Allow:定义允许访问列表。
Order:指定执行允许访问列表和拒绝访问列表的先后顺序。
all:表示所有客户。
域名:表示域内的所有客户,如linux.com。
IP地址:可指定完整的IP地址或部分IP地址,如192.168.0.20。
Order allow,deny:表示先执行允许访问列表再执行拒绝访问列表,默认情况下将拒绝所有没有明确被允许的客户。
Order deny,allow:表示先执行拒绝访问列表再执行允许访问列表,默认情况下将允许所有没有明确被拒绝的客户。
mkdir /var/www/html/secure
在此文件夹下创建测试页面index.html
vi /var/www/html/secure/index.html
vi /etc/httpd/conf/httpd.conf
在指令<Directory "/var/www/html">前添加:
<Directory "/var/www/html/secure">
Order deny,allow
Allow from IP地址
Deny from all
</Directory>
访问控制(基于用户名和密码),也称为认证
Apache支持两种认证方式:基本(Basic)认证和摘要(Digest)认证,目前通常只使用基本认证。
Apache服务器利用以下认证参数,可实现对指定目录的认证控制。用户访问到指定目录的网页文件时必须输入认证用户名和口令,验证成功后才能访问。
AuthName 领域名称:指定用户认证领域的名称。
AuthType Basic|Digest:设定用户认证的方式,一般只使用Basic。
AuthUserFile 文件名:指定认证用户文件名及其保存路径。
AuthGroupFile 文件名:指定认证组群文件名及其保存路径。
使用认证参数后还需要使用Require参数进行授权。
Require 用户名列表:授权给指定的用户。
Require 组群名列表:授权给指定的组群。
Require valid-user:授权给认证用户文件中所有的用户。
AllowOverride,控制那些被放置在.htaccess文档中的指令。他能够是“All”,“None”,或下列指令的组合:
Options FileInfo AuthConfig Limit
AllowOverride None 不使用.htaccess文件
All 启用.htaccess文件,并且可以使用所有的参数
AuthConfig .htaccess文件中可包含认证的相关参数
Limit .htaccess文件中可包含访问控制的相关参数
访问控制(基于用户名和密码修改httpd.conf文件直接设置指定目录的访问控制和认证的相关参数)
直接编辑httpd.conf文件,设置/var/www/html/test目录中所有网页文件只允许认证用户访问
-
先建立目标文件夹
mkdir /var/www/html/test
-
在目标目录中建立测试页面
vi index.html
并编写内容。
-
修改:/etc/httpd/conf/httpd.conf 直接设置指定目录的访问控制和认证的相关参数
<Directory "/var/www/html/test"> AllowOverride None AuthName "restricted stuff" AuthType Basic AuthUserFile /etc/httpd/users Require valid-user </Directory>
-
创建认证用户文件 /etc/httpd/users ,并设置多名用户为认证用户。
可以使用htpasswd ,-c参数是,第一次创建用户是该路径还不存在,加上这个参数路径自动创建。htpasswd -c /etc/httpd/users aaa htpasswd /etc/httpd/users bbb
htpasswd -D /etc/httpd/users bbb 删除用户bbb
-
重启httpd服务,测试。
访问控制(基于用户名和密码,在指定目录中创建.htaccess文件,访问控制和认证相关参数均保存在.htaccess文件)
注意.htaccess文件为隐藏文件,该文件名在httpd.conf中使用AccessFileName指令进行了设置,如AccessFileName .htaccess
该文件名可以修改,只需要修改AccessFileName指令后面的值即可。
mkdir /var/www/html/user
vi /var/www/html/user/index.html
http://your ip/user
vi /var/www/html/user/.htaccess
输入:
AuthName "restricted stuff"
AuthType Basic
AuthUserFile /etc/httpd/users
Require user aaa bbb
修改:/etc/httpd/conf/httpd.conf
在指令<Directory "/var/www/html">前添加:
<Directory "/var/www/html/user">
AllowOverride All
</Directory>
重启服务器,访问http://your ip/user