apache服务
1.apache
企业中常用的为web服务,用来提供http://(超文本传输协议)
2.apache的安全部署
yum install httpd -y apache软件
yum install httpd-manual apache的软件
systemctl start httpd
systemctl enable httpd
firewall-cmd --list-all 列出火墙信息
firewall-cmd --permanent --add-service=http 永久允许httpd
firewall-cmd --reload 重新加载火墙策略
cd /var/www/html
vim /var/www/html/index.html
<h1> hello world </h1>
测试: http://172.25.66.66
测试: http://172.25.66.66/manual
3.apache的基础信息
主配置目录:/etc/httpd/conf
主配置文件:/etc/httpd/conf/httpd.conf
子配置目录:/etc/httpd/conf.d
子配置文件:/etc/httpd/conf.d/*.conf
默认发布目录:/var/www/html
默认发布文件:index.html
默认端口:80
默认安全上下文:httpd sys content t
程序开启默认用户:apache
apache日志:/etc/httpd/logs/*
4.修改默认端口:
vim /etc/httpd/conf/httpd.conf
43 Listen 8080 修改默认端口为8080
firewall-cmd --permanent --add-port=8080/tcp 使防火墙允许8080端口,否则浏览器访问不到页面
firewall-cmd --reload
2.修改默认发布文件
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件,这个文件可以指定多个,有访问顺序
vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex index.html test.html 当index不存在时访问test
3.修改默认发布目录
DocumentRoot"/westos/html"
<Directory "/westos/html">
Require all granted
</Directory>
测试:
4.访问控制
1)在/var/www/html中创建目录westos,在其中编辑主页用来测试
修改配置文件,使其只拒绝172.25.66.250这台主机,其他主机都允许访问
在172.25.66.250这台主机打开firefox进行测试,发现服务被拒绝
2)修改配置文件,使其除了172.25.66.250这台主机能够访问外,其他主机都不允许访问
在172.25.66.250这台主机打开firefox进行测试,发现可以访问
5.用户认证
htpasswd -cm wetosuser admin 在刚创建用户认证文件时需要加-c选项,一旦此文件存在,再添加用户时无需使用-c选项,否则会覆盖原有用户
htpasswd -m westosuser admin1
在/etc/httpd/conf路径下,添加两个认证用户admin和admin1
修改配置文件,只允许admin用户能够通过认证访问
重启服务后,进行测试,发现admin用户可以通过认证访问,而admin1用户不可以访问(注意清理浏览器缓存)
2)编辑配置文件,使所有认证用户都能够通过认证访问
重启服务后,进行测试,发现admin和admin1用户都能访问
6.虚拟主机
应用场景:我们有一台服务器,但是想挂多个网站,那么Apache下配置虚拟主机可以满足这个需求
服务器端
mkdir /var/www/virtual/music/html -p
mkdir /var/www/virtual/news/html -p
vim /var/www/virtual/music/html/index.html
vim /var/www/virtual/news/html/index.html
cd /etc/httpd/conf.d/ 子配置文件,服务会默认读取
vim a_default_.conf
vim news.conf
vim music.conf
systemctl restart httpd
在浏览器测试端编辑/etc/hosts文件,使其能够进行本地dns解析
6.php和cgi
yum install php
vim /var/www/html/index.php
测试:
cd /var/www/html
mkdir cgi
cd /cgi
vim index.cgi
测试后发现源代码裸露
cd /etc/httpd/conf.d/
vim a_default_.conf
测试:
7.配置支持https
1)安装httpd支持ssl模块
yum install mod_ssl -y 安装完后,/etc/httpd/conf.d下会出现mod.conf文件
2)自建CA
yum install crypto-utils -y
genkey www.westos.com 生成证书和私钥
vim ssl.conf
systemctl restart httpd
测试:
8.实现页面重写
cd /etc/httpd/conf/conf.d
cp news.conf login.conf
vim login.conf
vim /var/www/virtual/login/html/index.html
systemctl restart httpd
测试:
注意:
^(/.*)$ 客人在浏览器地址栏中输入的所有字符
https:// 强制客户加密访问
%{HTTP_HOST} 客户请求主机
$1 标示^(/.*)$ 的值
[redirect=301] 临时重写 302永久转换
squid代理缓存
定义:Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
场景一 :172.25.66.66主机为squid服务器,通过配置网络使其能够上网
172.25.66.88主机为测试端,无法上网,通过在浏览器中指向其代理服务器为172.25.66.66,从而能够上网
1)服务器端
yum install squid -y 安装squid服务
yum start squid 开启squid服务
vim /etc/sysconfig/network-scripts/ifcfg-eth0 配置网络使其能够上网
编辑/etc/squid/squid.conf文件,允许为所有主机提供代理
编辑完成后重启服务,查看端口,发现能够ping通百度
2)测试端
在浏览器中设置它的代理服务器为172.25.66.66这台主机,设置完成后,发现能够上网
场景二:在网站后台架构中,代理缓存主要部署在web server之上,当用户对网站后台发起连接请求时,用户请求先到代理缓存中去查找,如果命中,则将请求返回给用户,如果没有命中,则代理缓存将请求发到web server,然后web servr将请求复制一份到代理缓存,同时把请求返回给客户。为了实现对用户透明访问,需要使用DNS来引导用户来访问squid服务器,以实现透明的加速服务。
1)squid服务器端(172.25.66.88)
安装squid服务,关闭防火墙
编辑/etc/squid/squid.conf配置文件,完成后重启服务
2)客户端
vim /etc/hosts
172.25.66.88 www.westos.com
在浏览器输入www.westos.com,根据本地DNS解析会解析为172.25.66.88,而其是squid代理缓存服务器,根据配置文件它会询问自己的上层服务器172.25.66.66,从而获得网页
轮询
1)squid客户端:
在squid服务器端编辑/etc/squid/squid.conf文件,从客户端过来的请求,如果是www.westos.com,则squid服务器先向Sever 172.25.254.110的80端口发送请求。刷新后,则向Sever 172.25.254.148的80端口发送请求
proxy-only:直接获取对方缓冲,转交给代理服务器的客户端,而不存入本地
round-robin:如果设置数部上层服务器,那么轮流查询父级服务器
originalserver:源服务器
name=a :表示给cache_peer一个别名
2)客户端
编辑/etc/hosts文件
测试:在浏览器中输入www.westos.com,第一次出现的主页是172.25.254.110主机的页面,再次刷新出现的是172.25.254.148主机的页面。现实中两个页面应该是相同的,在这用于测试。
命中率
在squid服务器端编辑/etc/squid/squid.conf文件,在172.25.254.110这行后添加weight=3,表示在172.25.254.110的页面刷新三次后才后出现172.25.254.148主机的页面