Linux,WWW服务器配置

WWW服务器配置

  1. 理论
    WWW服务又称Web服务,客户机和服务器都遵循HTTP协议,默认采用80端口通信。
  2. 配置
    软件名称为Apache,守护进程(服务名)为httpd。
    RHEL Server 5默认不安装Apache软件包,需要手工安装。

安装启动简单测试

  1. 安装yum install httpd
  2. 启动service httpd start
    此时打开网页页面是这样的:
    在这里插入图片描述
  3. 建立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目录中所有网页文件只允许认证用户访问

  1. 先建立目标文件夹mkdir /var/www/html/test

  2. 在目标目录中建立测试页面vi index.html并编写内容。
    在这里插入图片描述

  3. 修改:/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>
    

    在这里插入图片描述

  4. 创建认证用户文件 /etc/httpd/users ,并设置多名用户为认证用户。
    可以使用htpasswd ,-c参数是,第一次创建用户是该路径还不存在,加上这个参数路径自动创建。

    htpasswd -c /etc/httpd/users aaa
    htpasswd /etc/httpd/users bbb
    

    在这里插入图片描述

    htpasswd -D /etc/httpd/users bbb  删除用户bbb
    
  5. 重启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
  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值