1.Apache的基本信息
Apache:对外提供超文本传输协议的一种软件
超文本传输协议:提供网络资源的共享 在web被访问时通常使用http://的方式
http:// ##超文本传输协议
http:// 超文本传输协议
提供软件:Apache,nginx,stgw,jfe,Tengine
curl -I 网站
#可以查看被访问网站是由什么软件提供的超文本传输协议服务名称:httpd
配置文件:
/etc/httpd/conf/httpd.conf ##主配置文件
/etc/httpd/conf.d/*.conf ##子配置文件
默认发布目录:/var/www/html
默认发布文件:index.html
默认端口:80 #http
443 #https
用户:apache
日志:/etc/httpd/logs
2.Apache的安装
dnf install httpd -y
systemctl enable --now httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
将两个服务加入火墙
firewall-cmd --reload
3.修改测试页内容
vim /var/www/html/index.html
结果
3.Apache的基本配置
1.更改Apache端口
vim /etc/httpd/conf/httpd.conf
systemctl restart httpd
netstat -antlupe |grep httpd查看端口
2.默认发布文件的管理
cd /var/www/html/
[root@westoslinux html]# ls
index.html
vim cui.html
vim /etc/httpd/conf/httpd.conf
167行
systemctl restart httpd
优先访问cui
想要访问index要输入完整目录
3.默认发布目录的管理
mkdir /westos_apache
ls
cd westos_apache/
vim index.html
建立新目录
修改配置文件
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/westos_apache"
<Directory "/westos_apache">
# Allow open access:
Require all granted
</Directory>
semanage fcontext -a -t httpd_sys_content_t '/westos_apache(/.*)?'
将文件类型改为apache识别的类型
restorecon -RF /westos_apache/
systemctl restart httpd
效果测试:
4.Apache的访问控制
在html下建立westos目录
vim /etc/httpd/conf/httpd.conf
122行
DocumentRoot "/var/www/html"
<Directory "/var/www/html/westos">
Order Allow,Deny
Allow from all
Deny from 172.25.254.12
</Directory>
Allow和Deny的读取顺序:
允许任何人访问
不允许172。25。254。12访问
##因为先读Allow后读Deny那么Deny里面的信息会覆盖Allow中的信息
(1)黑名单
效果测试:真机无法访问
(2)白名单
vim /etc/httpd/conf/httpd.conf
systemctl restart httpd
查看效果
5.基于用户的访问方式
1. 建立apache的目录认证文件
实验材料准备:
cd /var/www/html
htpasswd -cm /etc/httpd/.htpasswd admin
##当认证文件不存在时,需要加-c参数
htpasswd -m /etc/httpd/.htpasswd lee
##当认证文件存在时,加-c参数会删除原有内容
cat /etc/httpd/.htpasswd
##查看用户认证文件
2.配置文件修改
基本认证
只有admin用户可以通过认证
所有用户可以通过认证
<Directory "/var/www/html/yitian”>
AuthUserFile /etc/httpd/.htpasswd ##指定认证文件
AuthName “Please input username and passwd” ##指定认证提示
AuthType basic ##指定认证类型
1. # Require user admin ##指定认证用户
##认证文件中admin用户可以通过认证
2. Require valid-user ##认证文件中的所有用户都可以通过认证
##两个参数指定写一个就好
情况一:
效果测试
情况二:
效果测试:
6.Apache的虚拟主机
1.实验素材
配置文件内容: 写完了重启服务
<VirtualHost _default_:80>
DocumentRoot "/var/www/html"
Customlog logs/default.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName wenku.westos.org
DocumentRoot "/var/www/vhost/wenku"
Customlog logs/wenku.log combined
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/vhost/news"
Customlog logs/news.log combined
</VirtualHost>
域名解析:浏览器所在主机中操作
172.25.254.112 news.westos.org wenku.westos.org
效果测试:
七、Apache的语言支持:
PHP语言
安装php,添加php发布文件内容如下,重启服务即可访问:
cgi语言
安装cgi语言的解释器:
创建cgi的发布目录
更改cgi的发布文件:
在http.conf中,定义的pl运行位置是/var/www/cgi-bin/,而现在,运行的位置变化了,需要重新说明:
访问一下:
#squid正向代理
1.能上网的主机是代理
代理的操作
vim /etc/sysconfig/network-scripts/ifcfg-ens3
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.112
PREFIX=24
GATEWAY=172.25.254.250
DNS1=114.114.114.114
重新加载网络
dnf install squid -y
vim /etc/squid/squid.conf
59\65行修改
systemctl restart squid
48 firewall-cmd --permanent --add-port=3128
49 firewall-cmd --permanent --add-port=3128/tcp
50 firewall-cmd --reload
客户端:
直接在浏览器修改
references > network settings >
效果测试:客户端ping不通baidu,但是浏览器可以用
#squid反向代理
原理:把westosb作为代理,westosa是主服务器,用户访问westosa时,显示的是westob中的内容
1.代理端:
dnf install httpd.x86_64 -y
48 echo 172.25.254.212 > /var/www/html/index.html
52 systemctl stop --now firewalld.service
54 systemctl enable --now httpd
2.主服务器:修改配置文件
vim /etc/squid/squid.conf
修改好后
systemctl restart squid
http_port 80 vhost vport
cache_peer 172.25.254.212 parent 80 0 proxy-only
效果查看:
systemctl disable --now squid
服务关闭后网页消失