Apache服务器(11)

@http 服务原理

http 超文本传送协议 80端口
https 安全的超文本传输协议 443端口
基于 C/S(客户端/服务端)模型
协议流程:
连接:客户端与服务端建立连接
请求:客户端向服务端发送请求
应答:服务端响应,将结果传给客户端
关闭:执行结束后关闭

@Apache 服务器介绍
Apache是常见的支持 HTTP 协议的 Web 服务器之一,也是使用最广泛的Web 服务器。截止到今年 1月,世界上大约有超过500 万台 Internet 服务器使用的是 Apache Server。Apache Server的主要特点是稳定性高、速度快、功能多。通过第三方的评测,Apache Server比大多数的 Web服务器都快。Apache 服务器既是一种软件,又是一个工程。它是由千千万万的服务器代码和文档开发者共同努力的结果。在1995 年 4 月,公开发行了第一套Apache Server,版本号是 0.6.2。Apache Server的名字来源于“A PatCHy Server”。
@Apache——A Patchy Server
特点:

  • 支持最新的HTTP1.1 协议。
  • 支持 PHP、CGI、Java Servlets 和 FastCGI。
  • 支持安全 Socket 层。
  • 集成了 Perl 脚本编程语言。
  • 支持 SSI和虚拟主机。
  • 实现了动态共享对象,允许在运行时动态装载功能模块。
  • 具有安全、有效和易于扩展等特征。
  • Apache 的主要特点:
  • 支持进程控制:在需要前自动复制进程,进程数量自动使用需求
  • 支持动态加载模块:不需重编译就可扩展其用途
  • 支持虚拟主机:允许使用一台web 服务器提供多个web站点的共享

@APACHE相关文件
配置文件:/etc/httpd/conf/httpd.conf
服务器的根目录:/etc/httpd
根文档目录:/var/www/html
访问日至文件:/var/log/httpd/access_log
错误日至文件:/var/log/httpd/error_log
运行 Apache 的用户:apache
运行 Apache 的组:apache
端口:80
模块存放路径:/usr/lib/httpd/modules
@文件系统容器和网络空间容器
文件系统容器
<Directory><Files>是针对文件系统的指令。<Directory>段中的指令作用于指定的文件系统目录及其所有子目录,.htaccess 文件可以达到同样的效果。网络空间容器<Location>是针对网络空间的指令。<Location>指令无须文件系统的支持 。
注释:对比动态站点和静态站点页面来讲解
@ Apache的进程和服务

apache 的进程---httpd
apache 的启动 service httpd start
apache 的停止 service httpd stop
apache 的重新启动 service httpd restart

创建个人主页

@主配置文件介绍
各字段介绍:

ServerRoot:设定Apache 安装的绝对路径
TimeOut:设定服务器接收至完成的最长等待时间
KeepAlive:设定服务器是否开启连续请求功能
MaxKeepAliveRequests:设定服务器所能接受的最大连续请求量
KeepAliveTimeout:使用者 ‘连续’ 请求的等待时间上限

一般主要配置字段
1、AccessFileName

  • 默认值:AccessFileName .htaccess
  • 此命令是针对目录的访问控制文件的名称;

2、BindAddress

默认值:BindAddress *
设置服务器监听的IP 地址;

3、DefaultType

默认值:DefaultType text/html
服务器不知道文件类型时,用缺省值通知客户端;

4、DocumentRoot

默认值:DocumentRoot “/var/www/html/”
设置 Apache 提供文件服务的目录;

5、ErrorDocument

  • 设置当有问题发生时,Apache所做的反应;

6、

  • 使用不包含在Apache 安装中的模块的命令

7、Include

  • 包含其它的配置文件

8、Listen

  • 默认值:所有能够连接到服务器的IP 地址
  • 指定如何响应除去Port 指定的端口地址外的地址请求;

9、Options
控制某个特定目录所能使用的服务器功能;
其值有:

    None:表示只能浏览,
  FollowSymLinks:允许页面连接到别处,
  ExecCGI:允许执行CGI,
   MultiViews:允许看动画或是听音乐之类的操作,
  Indexes:允许服务器返回目录的格式化列表,
  Includes:允许使用SSI。这些设置可以复选。
  All:则可以做任何事,但不包括MultiViews。
  AllowOverride:加None 参数表示任何人都可以浏览该目录下的文件。
 另外的参数有:FileInfo、AuthConfig、Limit

10、Port

  • 默认值:Port 80
  • 设置服务器监听的网络端口;

11、ServerAdmin

  • 设定管理员的电子邮件地址;

12、ServerName

  • 设定服务器的主机名称;

13、ServerRoot

  • 默认值:ServerRoot /etc/httpd/
  • 设定服务器的根目录;

14、User && Group

  • 指定服务器用来回答请求的用户ID 和组 ID;
    @编辑主配置文件 vi /etc/http/conf/httpd.conf

第(354 行)

UserDir Disable改成#UserDir Disable
(361 行)启动个人主目录名称,去掉#
UserDir public_html #配置个人主目录
(369-380 行)启动个人用户 Web 站点的访问权限,去掉#
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

@启动或重启Apache 服务

service httpd start(restart)

11.3.4 创建自己的个人主页
1、添加用户

  • useradd user

2、切换用户,并进入用户主目录

  • su - user

3、创建文档目录,建立测试页,添加执行权限

mkdir public_html 创建文档目录,
vi public_html/index.html 建立测试页,
cd /home
chmod 711 user 添加执行权限

@ 使用浏览器测试
在浏览器中http://域名或者 IP 地址/~用户名

example:
http://www.baidu.com/~user

发布默认站点下目录的内容

@进入默认根文档目录并新建目录

cd /var/www/html
mkdir 目录

@在新建的目录下生成测试文件和测试目录

touch 文件名
mkdir 目录

@ 编辑主配置文件

vi /etc/httpd/conf/httpd.conf

使用文件系统容器生成文件指定目录位置

<Directory /var/www/html/redhat>
Options Indexes
</Directory>

@重新启动服务器并测试

service httpd restart
http://www.baidu.com/redhat

配置目录访问控制

@访问控制指令

order 顺序,设定拒绝和允许的先后顺序
deny 拒绝
allow 允许
example:
order deny,allow 拒绝所有的访问,除去明确允许的
“拒绝优先,即默认拒绝”
order allow,deny 允许所有的访问,除去明确拒绝的
“允许优先,即默认允许”
deny from 拒绝的范围
可以是 IP地址,如 192.168.10.x,或者 192.168.10 或者192.168.1.0/255.255.255.0 或者
192.168.10.0/24
(针对无类的IP 地址可以加子网掩码)可以是域名,如aaa.bbb ;All代表所有的
allow from 允许的范围
可以是 IP地址,如 192.168.10.x,或者 192.168.10 或者192.168.1.0/255.255.255.0 或者
192.168.10.0/24
可以是域名,如aaa.bbb ;All 代表所有的

@对站点进行访问控制设置
编辑主配置文件
拒绝优先

<Directory /var/www/html/redhat>
Options Indexes
Order deny,allow
Deny from all
Allow from 200.200.200.200 只允许200.200.200.200
</Directory>
允许优先
<Directory /var/www/html/redhat>
Options Indexes
Order allow,deny
Allow from all
Deny from 200.200.200.200 只拒绝200.200.200.200
</Directory>

重启服务器测试
@配置认证指令

AuthName 认证名字
AuthType 认证类型,有两种
Basic,基本认证类型,所有浏览器均支持
Digest,摘要认证类型,部分浏览器不支持
AuthUserFile 认证用户文件,存放认证用户的列表文件
Require valid-user 授权给通过认证的所有用户
Require user 用户名 授权给通过认证的指定用户

@在主配置文件中添加授权认证的指令

<Directory /var/www/html/redhat>
Options Indexes
AuthName “rz” 认证名称为rz
AuthType Basic 认证类型为基本认证类型
AuthUserFile file1 指定认证用户文件
Require valid-user 授权给通过认证的所有用户
</Directory>

@生成认证授权文件,并添加用户

#htpasswd -c /etc/httpd/认证文件 用户名

@更改认证授权文件的属主和属组为apache

#chown apache.apache /etc/httpd/认证文件

@重新启动apache 服务

#service httpd restart

@两种综合情况
1、满足一种条件即可访问
Satisfy any
或者满足访问控制的条件,或者满足认证授权的条件,就可以访问指定页面、目录
2、必须同时满足2 个条件才能访问
Satisfy all
必须同时满足访问控制和认证授权的条件,才可以访问指定页面、目录
@在主文件中配置访问控制和认证授权指令

<Directory /var/www/html/redhat>
Options Indexes
Order allow,deny
Deny from all
Allow from 200.200.200.200
AuthName “rz”
AuthType Basic
AuthUserFile file2
Require valid-user
Satisfy all
</Directory>

@生成认证授权文件,同时添加用户

htdigest -c /etc/httpd/认证文件 认证名 用户名

@更改认证文件的属主和属组为apache

chown apache.apache /etc/httpd/file2

重启服务并测试
@分割指令
1、Include 目录/文件名.conf
apache 启动时,同时加载 Include 指令指定的目录下的以.conf结尾的文件,可以减少 apache的主配置文件的容量
2、.htaccess 目录下的隐藏文件
可以减少 apache 服务的启动
@include
在主配置文件的第209 行Include conf.d/*.conf
在指定目录中生成文件并发布/etc/httpd/conf.d/
然后测试
@htaccess
1 在主配置文件中发布目录,添加使用.htaccess的指令
增加一行
Allowoverride All
2 在指定目录中生成.htaccess文件,并添加指令
在发布目录/var/www/html/redhat5下生成.htaccess 文件
3 重新启动apache 服务测试
@虚拟主机
一 虚拟主机常用命令
1、和

  • 用于封装一组仅作用于特定虚拟主机的指令。

2、NameVirtualHost

  • 指定一个基于域名的虚拟主机将使用哪个IP 地址来接受请求。

3、ServerName

  • 设置了服务器用于辨识自己的主机名和端口号。

二 配置基于端口的虚拟主机
1、编辑主配置文件,添加虚拟主机指令

Listen 1234
Listen 2345
<VirtualHost 200.200.200.1:1234>
DocumentRoot /vdir/1234
</VirtualHost>
<VirtualHost 200.200.200.1:2345>
DocumentRoot /vdir/2345
</VirtualHost>

2、建立虚拟主机的根文档目录,生成测试页

mkdir -p /vdir/1234
mkdir /vdir/2345
echo “这是端口为1234 的主页!”>/vdir/1234/index.html
echo “这是端口为2345 的主页!”>/vdir/2345/index.html

3、重新启动服务并测试
@配置基于IP 的虚拟主机
1、添加网卡(虚拟网卡或真实网卡)
2、编辑主配置文件,添加虚拟主机指令

<VirtualHost 200.200.200.1>
DocumentRoot /vdir/1
</VirtualHost>
<VirtualHost 200.200.200.2>
DocumentRoot /vdir/2
</VirtualHost>

3、建立虚拟主机的根文档目录,生成测试页

mkdir /vdir/1
mkdir /vdir/2
echo “这是端口为1 的主页!”>/vdir/1/index.html
echo “这是端口为2 的主页!”>/vdir/2/index.html

4、重新启动服务并测试
@配置基于域名的虚拟主机
配置基于域名的虚拟主机必须需要DNS 的支持
1、配置 DNS
2、在主配置文件中,添加虚拟主机指令

NameVirtualHost 200.200.200.1
<VirtualHost 200.200.200.1>
        ServerName www.huayu.com
        DocumentRoot /vdir/huayu
</VirtualHost>
<VirtualHost 200.200.200.1>
        ServerName www.eduask.com
        DocumentRoot /vdir/eduask
</VirtualHost>
<VirtualHost 200.200.200.1>
        ServerName www.baidu.com
        DocumentRoot /vdir/baidu
</VirtualHost>

3、建立虚拟主机的根文档目录,生成测试页

mkdir /vdir/huayu
mkdir /vdir/eduask
mkdir /vdir/baidu
echo “这是端口为huayu 的主页!”>/vdir/huayu/index.html
echo “这是端口为eduask 的主页!”>/vdir/eduask/index.html
echo “这是端口为baidu 的主页!”>/vdir/baidu/index.html

4、重新启动服务并测试
@配置后台更新-WebDav
1、发布目录
2、在主配置文件中添加认证授权指令同时添加Dav 指令

<Directory /var/www/html/redhat6>
Options Indexes
Dav on
AuthName “dav”
AuthType Basic
AuthUserFile file3
<LimitExcept GET OPTIONS>
Require valid-user
</LimitExcept>
</Directory>

3、配置认证授权的相关文件
生成认证授权文件,并添加用户#htpasswd -c /etc/httpd/认证文件 用户名
更改认证授权文件的属主和属组为apache#chown apache.apache /etc/httpd/认证文件
4、重启服务测试
5、在服务器端给更新目录添加写的权限chmod o+w /var/www/html/redhat6

更新测试

猜你喜欢

转载自blog.csdn.net/qq_39222965/article/details/80489573
今日推荐