Linux命令学习—Apache 服务器(上)
1.1、http 服务原理
http 超文本传送协议 80 端口 https 安全的超文本传输协议 443 端口 基于 C/S(客户端/服务端)模型
协议流程:
连接:客户端与服务端建立连接 请求:客户端向服务端发送请求 应答:服务端响应,将结果传给客户端 关闭:执行结束后关闭
1.2、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”。
1.2.1、Apache——A Patchy Server
特点:
支持最新的 HTTP1.1 协议。
支持 PHP、CGI、Java Servlets 和 FastCGI。
支持安全 Socket 层。 集成了 Perl 脚本编程语言。
支持 SSI 和虚拟主机。
实现了动态共享对象,允许在运行时动态装载功能模块。
具有安全、有效和易于扩展等特征。
Apache 的主要特点:
支持进程控制:在需要前自动复制进程,进程数量自动使用需求
支持动态加载模块:不需重编译就可扩展其用途
支持虚拟主机:允许使用一台 web 服务器提供多个 web 站点的共享
1.2.2、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
1.2.3、文件系统容器和网络空间容器
文件系统容器
和是针对文件系统的指令。段中的指令作用于指定的文件系统目录及其所 有子目录,.htaccess 文件可以达到同样的效果。
网络空间容器
是针对网络空间的指令。
指令无须文件系统的支持 。
注释:对比动态站点和静态站点页面来讲解
1.2.4、Apache 的进程和服务
apache 的进程---httpd apache 的启动 service httpd start apache 的停止 service httpd stop apache 的重新启动 service httpd restart
1.3、创建个人主页
1.3.1、主配置文件介绍
各字段介绍:
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;
1.3.2、编辑主配置文件
vi /etc/http/conf/httpd.conf 第(354 行) UserDir Disable 改成#UserDir Disable (361 行)启动个人主目录名称,去掉# UserDir public_html #配置个人主目录 (369-380 行)启动个人用户 Web 站点的访问权限,去掉# AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Order allow,deny Allow from all Order deny,allow Deny from all
1.3.3、启动或重启 Apache 服务
service httpd start(restart)
1.3.4、创建自己的个人主页
1、添加用户
useradd user
2、切换用户,并进入用户主目录
su - user
3、创建文档目录,建立测试页,添加执行权限
mkdir public_html 创建文档目录, vi public_html/index.html 建立测试页, cd /home chmod 711 user 添加执行权限
1.3.5、使用浏览器测试
在浏览器中 http://域名或者 IP 地址/~用户名
example: http://www.baidu.com/~user
1.4、发布默认站点下目录的内容
1.4.1、进入默认根文档目录并新建目录
cd /var/www/html mkdir 目录
1.4.2、在新建的目录下生成测试文件和测试目录
touch 文件名 mkdir 目录
1.4.3、编辑主配置文件
vi /etc/httpd/conf/httpd.conf 使用文件系统容器生成文件指定目录位置 Options Indexes
1.4.4、重新启动服务器并测试
service httpd restart http://www.baidu.com/redhat
1.5、配置目录访问控制
1.5.1、访问控制指令
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 代表所有的
1.5.2、对站点进行访问控制设置
编辑主配置文件
拒绝优先
Options Indexes Order deny,allow Deny from all Allow from 200.200.200.200 只允许 200.200.200.200 允许优先 Options Indexes Order allow,deny Allow from all Deny from 200.200.200.200 只拒绝 200.200.200.200
重启服务器测试
1.6、配置认证指令
AuthName 认证名字 AuthType 认证类型,有两种 Basic,基本认证类型,所有浏览器均支持 Digest,摘要认证类型,部分浏览器不支持 AuthUserFile 认证用户文件,存放认证用户的列表文件 Require valid-user 授权给通过认证的所有用户 Require user 用户名 授权给通过认证的指定用户
1.6.1、在主配置文件中添加授权认证的指令
Options Indexes AuthName “rz” 认证名称为 rz AuthType Basic 认证类型为基本认证类型 AuthUserFile file1 指定认证用户文件 Require valid-user 授权给通过认证的所有用户
1.6.2、生成认证授权文件,并添加用户
#htpasswd -c /etc/httpd/认证文件 用户名
1.6.3、更改认证授权文件的属主和属组为 apache
#chown apache.apache /etc/httpd/认证文件
1.6.4、重新启动 apache 服务
#service httpd restart