文章目录
Apache概述
- 主要特点
开放源代码、跨平台应用
支持多种网页编码语言
模块化设计、运行稳定、良好的安全性
- 软件版本
1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能
2.x
目前主要包括2.0和2.2两个版本
具有更多的功能特性
与1.x相比,配置管理风格存在较大差异
搭建并测试httpd服务器
-
yum install httpd 安装软件包
-
systemctl start httpd 启用服务
-
systemctl stop firewalld 关闭防火墙
-
setenfoce 0 关闭selinux
-
Vim /etc/httpd/conf.d/vhosts.conf 设置主机访问目录,以及目录权限
-
vim /var/www/html/index.html 定义网站资源信息
-
systemctl restart httpd 重启服务
-
打开游览器通过http://ip 通过指定格式访问测试,是否满足需求
-
[root@localhost ~]# rpm -ql httpd 查看安装配置
-
主要目录和文件
目录 | 文件 |
---|---|
服务目录 | /etc/httpd/ |
主配置文件 | /etc/httpd/conf/httpd.conf |
网页目录 | /var/www/html |
服务脚本 | /etc/init.d/httpd |
执行程序 | /usr/sbin/httpd |
访问日志 | /var/log/httpd/access_log |
错误日志 | /var/log/httpd/error_log |
httpd.conf配置文件
- 常用的全局配置参数
ServerRoot | 服务目录 |
---|---|
ServerAdmin | 管理员邮箱 |
User | 运行服务的用户身份 |
Group | 运行服务的组身份 |
ServerName | 网站服务器的域名 |
DocumentRoot | 网页文档的根目录 |
Listen | 监听的IP地址、端口号 |
PidFile | 保存httpd进程PID号的文件 |
DirectoryIndex | 默认的索引页文件 |
ErrorLog | 错误日志文件的位置 |
CustomLog | 访问日志文件的位置 |
LogLevel | 记录日志的级别,默认为warn |
Timeout | 网络连接超时,默认为300秒 |
KeepAlive | 是否保持连接,可选On或Off |
MaxKeepAliveRequests | 每次连接最多请求文件数 |
KeepAliveTimeout | 保持连接状态时的超时时间 |
Include | 需要包含进来的其他配置文件 |
httpd服务的日志
- 两类日志文件
- 访问日志:/var/log/httpd/access_log
- 错误日志:/var/log/httpd/error_log
- httpd.conf中对日志的设置
Web站点的典型应用
- 测试httpd服务器的性能
- 构建虚拟Web主机
- 建立系统用户的个人主页
- httpd服务的访问控制
测试httpd服务器的性能
- ab命令
Apache Benchmark,Apache基准测试工具
格式:ab [-q] -c 并发请求数 -n 总的请求数 [http://]域名[:端口]/路径
- 应用示例
[root@www ~]# ulimit -n 3600
[root@www ~]# ab -q -c 2000 -n 4000 http://www.openlab.com/
2000 是修改允许打开的最大文件数
构建虚拟Web主机
- 虚拟Web主机
即在同一台服务器中运行多个Web站点的应用,其中每一个站点并不占用一台真正的计算机
- httpd支持的虚拟主机类型
- 基于域名的虚拟主机
- 基于IP地址的虚拟主机
- 基于端口的虚拟主机
基于域名的虚拟Web主机
- 示例1:构建2个虚拟Web站点
- www.openlab.com,IP地址为 173.17.17.11
- www.test.com,IP地址为 173.17.17.11
在浏览器中访问这两个域名时,分别显示不同的内容
[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……
NameVirtualHost 173.17.17.11
<VirtualHost 173.17.17.11>
DocumentRoot /var/www/html/openlab
ServerName www.openlab.com
</VirtualHost>
<VirtualHost 173.17.17.11>
DocumentRoot /var/www/html/test
ServerName www.test.com
</VirtualHost>
基于IP地址的虚拟Web主机
- 示例2:构建2个虚拟Web站点:
- www.openlab.com,IP地址为 173.17.17.11
- www.test.com,IP地址为 192.168.4.11
在浏览器中访问这两个IP时,分别显示不同的内容
[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……
<VirtualHost 173.17.17.11>
DocumentRoot / var/www/html/openlab
ServerName www.openlab.com
</VirtualHost>
<VirtualHost 192.168.4.11>
DocumentRoot / var/www/html/test
ServerName www.test.com
</VirtualHost>
基于端口虚拟Web主机
- 示例3:构建2个虚拟Web站点:
- www.openlab.com,IP地址、端口为 173.17.17.11:80
- www.test.com,IP地址、端口为 173.17.17.11:8080
在浏览器中访问这两个端口时,分别显示不同的内容
[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……
Listen 173.17.17.11:80
Listen 173.17.17.11:8080
<VirtualHost 173.17.17.11:80>
DocumentRoot / var/www/html/openlab
ServerName www.openlab.com
</VirtualHost>
<VirtualHost 173.17.17.11:8080>
DocumentRoot / var/www/html/test
ServerName www.test.com
</VirtualHost>
建立系统用户的个人主页
- 修改httpd.conf,启用个人主页功能
UserDir public_html
确认目录区域设置 - 建立个人主页测试网页
~/public_html/index.html
添加权限:chmod o+x /home/jerry/ - 重新启动httpd服务
/usr/local/apache2/bin/apachectl restart - 访问测试
http://www.benet.com/~user
[root@www ~]# vi /etc/httpd/conf/httpd.conf
……
#UserDir disable 若存在此行,应注释掉
……
UserDir public_html
<Directory "/home/*/public_html">
AllowOverride none
Options none
Order allow,deny
Allow from all
</Directory>
httpd服务的访问控制
- 基于用户的访问控制
添加认证授权设置
[root@www ~]# vi /etc/httpd/conf/httpd.conf
……
<Directory "/var/www/html/openlab">
……
AuthName “OpenLab"
AuthType Basic
AuthUserFile /var/www/html/openlab/.htpasswd 用户密码文件
require valid-user
</Directory>
……
创建存储认证用户账号及口令的文件——需要使用htpasswd工具
[root@www ~]# htpasswd -c \
> /usr/local/awstats/wwwroot/.htpasswd awuser
添加一个授权用户
- 基于客户端地址的访问控制
Order配置项,定义控制顺序
-
- 先允许后拒绝,默认拒绝所有:Order allow,deny
先拒绝后允许,默认允许所有:Order deny,allow
- 先允许后拒绝,默认拒绝所有:Order allow,deny
Allow、Deny配置项,设置允许或拒绝的地址
-
- Deny from address1 address2 …
Allow from address1 address2 …
- Deny from address1 address2 …
<Directory /var/www/html>
Order allow,deny
Allow from 192.168.0.0/24
Deny from 192.168.0.100
</Directory>