课程目标
- 了解常见的WEB服务器
- 熟悉apache服务的基本配置
- 掌握apache服务的虚拟主机配置
- 熟悉apache的访问控制
-
一、WEB服务概述
1. WEB服务的特点
WEB服务分为客户端和服务端
- 客户端一般是我们使用的浏览器
-
2. HTTP协议
web服务端与客户端通过HTTP协议(hypertext transfer protocol)超文本传输协议进行交互
-
3. 静态页面和动态页面
HTML语言
- 超文本标记语言,通过浏览器解释后展现出来
- 有固定语法用来存储网页数据。现在的网页都用CSS网页来存储网页的表现形式
- 现代主流的网页设计架构:
内容存储:HTML
网页架构:div
网页样式:css - HTML形式的页面称之为静态页面,包含一些图片、文本、表格等
- 超文本标记语言,通过浏览器解释后展现出来
动态语言
php:php-fpm、hhvm
jsp:tomcat、jboss、resin、ibm websphere
5. 常见的WEB组合方式
LAMP //php作为apache的模块
- LNMP //php-fpm进程(服务)
-
二、apache的介绍
查看官方文档,需要
yum list | grep ^httpd
yum -y install httpd-manual
- 启动服务,
service httpd start
- 查看手册,浏览器访问:ip/manual/
- 可以参考此文档, http://www.jinbuguo.com/
三、搭建简易WEB服务
- 关闭防火墙和selinux
- 其实后期还是需要配置的。放行端口号、selinux安全上下文等
- 其实后期还是需要配置的。放行端口号、selinux安全上下文等
- 配置yum源
- 软件三步曲(查看安装|确认成功安装|查看软件的文件列表)
- 了解配置文件,程序的官方手册
- 根据需求通过修改配置文件来完成服务搭建
- 启动服务,开机自启动
- 测试验证
四、apache服务的基本配置
1.apache更改默认数据根目录
- 使用的是2.2版本。供参考
- 更改配置文件的参数
vim /etc/httpd/conf/httpd.conf
- DocumentRoot “webserver”
- Directory “/webserver/“
- DocumentRoot “webserver”
- 还有目录的相关权限
service httpd restart
若出现主机名和IP地址解析问题,配置中开启并修改参数
软链接方式
需求1:共享web-server服务端的/data 目录里的所有文件
- apache服务默认情况下,到哪个目录里找相应的文件
- 将本地的/data 目录做一个快捷方式(软链接)到指定的目录里
步骤:
mkdir -p /data
touch /data/file{1..5}
- 创建软链接,
ln -s /data/ /webserver/share
- 在浏览器访问,IP/share 必须有路径才能访问到共享目录
- 或是将测试页面删掉,
mv /etc/httpd/conf.d/welcome.conf xxx/welcome.conf.bak
service httpd restart
- 或是将测试页面删掉,
- 别名方式
- 修改配置文件,
Alias /test/ "/data/"
`Directory "/data/"
-
五、apache服务的访问控制
1. 开启基本认证(用户密码)
步骤:
创建密码文件,
htpasswd -cm /etc/httpd/conf/.passfile harry
- 使用b 参数,是非交互的, 后面直接跟用户名 密码
修改配置文件,开启基本认证,
vim httpd.conf
<Directory "webserver/">
...
AuthType Basic //开启基本认证
AuthName "Input ypur name and password" //认证信息
AuthBasicProvider File //指定文件
AuthUserFile /etc/httpd/conf/.passfile //刚刚创建的密码文件
Require user harry //只有.passfile 里的harry被允许可用
</Directory>
service httpd restart
- 访问网站测试,http://10.1.1.1
总结:
- 需要知道网站的数据根目录
- 将认证信息加入到
… - 创建一个密码文件来保存用户名和密码
需求2:允许多个人来访问如何实现?
- 创建一个文件保存所有的用户(将很多用户加入到一个组里)
echo "admin:user01 user02 user03" >> /etc/httpd/conf/groups
- 将组里成员加入到密码文件中
htpasswd -mb /etc/httpd/conf/.passfile user01 123
或是利用脚本完成
修改主配置文件,(在官方文档里都有)
<Directory "webserver/">
...
AuthType Basic //开启基本认证
AuthName "Input ypur name and password" //认证信息
AuthUserFile /etc/httpd/conf/.passfile //刚刚创建的密码文件
AuthGroupFile /etc/httpd/conf/groups
Require group admin //只允许admin组成员访问,那么密码文件中的其他用户不可以访问
</Directory>
service httpd restart
- 继续测试验证
还可以添加一行参数,Require valid-user harry
就可允许其他用户和admin组成员都可访问。
Require user: 这是指定某个人访问。添加上后,某人可以访问但是admin组成员就不可访问了。
2. 网络访问控制
查看是否支持tcp-wrappers
rpm -ql httpd | grep bin
ldd /usr/sbin/httpd
不支持tcp-wrappers- 可以安装xinetd实现支持tcp-wrappers
- 禁止部分ip不能访问网站(同样是在
里面添加) - order allow,deny
allow from all
deny from 192.168.0.254 172.16.2.10 - 针对某个网段
order allow,deny
allow from all
deny from 192.168.0.254/255.255.255.0 - 针对域名
order allow,deny
allow from all
deny from node1.test.com *.test.com - 拒绝大部分,只允许某个ip
order deny,allow
deny from all
allow from 192.168.0.254
- order allow,deny
- HTTP通过状态码来标记返回信息。
六、apache服务的虚拟主机
1.基于IP的虚拟主机
环境准备:
eth0:10.1.1.1
eth1:192.168.0.1
需求:
浏览器:http://10.1.1.1 this is 10.1.1.1 test page
http://192.168.0.1 this ia 192.168.0.1 test page
步骤:
- 创建相应的数据目录及首页文件
mkdir -p /web{1,2}/data
echo
- 发布网站
- /etc/httpd/conf/httpd.conf 文件最后面有VirtualHost example
- ctrl+v 泛选择,dd删除注释
- ctrl+v 泛选择,dd删除注释
测试验证
- 临时添加一条到192.168.0.0网络的路由,
route add -net 192.168.0.0/24 dev eth0
route -n
2.基于端口的虚拟主机
需求2:
浏览器:http://10.1.1.1:80 this is 80 test page
http://10.1.1.1:10086 this ia 10086 test page
步骤:
- 临时添加一条到192.168.0.0网络的路由,
创建相应的数据目录及首页文件
mkdir -p /data/{80,10086}
echo
发布网站
- 注意添加 Listen 10086,监听端口
3.基于域名的虚拟主机
需求:
http://www.myweb.cc this is myweb.cc
http://ftp.test.net this is myftp
思路:
- 注意添加 Listen 10086,监听端口
搭建DNS服务器
- 搭建web服务器
- 客户端指定DNS服务器测试验证
环境:
web-server:10.1.1.1
dns-server:10.1.1.3
client:10.1.1.2
步骤:
- 发布网站
- 注意打开注释,
NameVirtualHost *:80
- 注意打开注释,
- 测试验证
- 注意,
echo nameserver 10.1.1.3 >> /etc/reslov.conf
- 注意,