1.什么是Apache
.Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,它主要用来提供http协议。
2.它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
3.Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。
2.Apache的特点
Apache:稳定性高,对客户端的响应是支持并发的;
nginx:快;
3.Apache的配置
1.安装Apache
yum search apache
yum install httpd.x86_64
systemctl start httpd
ssytemctl enable httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
firewall-cmd --list-all
- 搜索:

- 安装

- 打开

- 火墙设置

- 查看火墙

2.测试:
cd /var/www/html/
vim index.html
添加 <h1>haha</h1>
浏览器中:
http://172.25.60.1
- 编辑

- 内容如下

- 测试

3.apache的相关文件:
主配置目录: /etc/httpd/conf
主配置文件: /etc/http/conf/httpd.conf
子配置目录: /etc/httpd/conf.d/
子配置文件: /etc/httpd/conf.d/*.conf
默认发布目录: /var/www/html
默认发布文件:index.html #默认是index.html 里的内容被访问
默认端口: 80
默认安全上下文:http_sys_content_t
程序开启默认用户: apache
apache 日志:/etc/httpd/logs/ *
- 查看


4.修改Apache配置
1.修改默认端口
- 先修改selinux,查看

- 编辑配置文件

- 编辑内容

- 查看火墙许可

- 设置火墙许可

- 测试

- 添加端口测试

2.修改默认发布目录
mkdir -p /westos/html
cd /westos/html/
vim index.html 添加xixi
ls -Zd /westos/
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF /westos
vim /etc/httpd/conf/httpd.conf
120 行 DocumentRoot "/westos/html"
<Directory "/westos">
Require all granted
</Directory>
systemctl restart httpd
- 新建目录

- 编辑内容

- 查看


- 修改配置文件

- 重启后测试

3.修改默认发布文件
cd /var/www/html/westos.html
添加westos.html
vim /etc/httpd/conf/httpd.conf
编辑166行左右
DirectoryIndex westos.html index.html #更改默认访问文件时,如果第一个文件不在 就依次向下寻找
- 新建文件

- 修改配置文件内容

- 测试
4.Apache的虚拟主机配置
1.虚拟主机的含义:
虚拟主机指的是在单一机器上运行多个网站 (例如 company1.example.com 和 company2.example.com) 。
虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。
这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。
Apache 是第一个支持基于 IP 的虚拟主机的服务器。
Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。
基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机。
2.虚拟主机的配置
cd /etc/httpd/conf.d/
vim vhost.conf 编辑内容如截图所示
systemctl restart httpd
mkdir -p /var/www/virtual/westos.org/{music,news}
touch /var/www/virtual/westos.org/{music,news}/index.html
vim /var/www/virtual/westos.org/music/index.html 添加music
vim /var/www/virtual/westos.org/news/index.html 添加news
systemctl restart httpd
vim /etc/hosts
编辑:172.25.60.1 www.westos.org news.westos.org music.westos.org
- 编辑配置文件

- vhost.conf文件内容

- 新建文件

- 分别给上述文件编辑内容


- 作解析

- 测试



5.内部访问控制
1.基于ip访问控制
vim /etc/httpd/conf.d/vhost.conf
编辑:
<Directory "/var/www/html">
Order deny,allow
Allow from all
Deny from 172.25.60.1
</Directory>
- 编辑配置文件
![]()
- 内容

- 重启

测试

2.基于认证的访问控制
cd /etc/httpd/
htpasswd -cm .htpassfile admin
htpasswd -m .htpassfile admin1 #当添加完一个用户之后,再添加用户时,不能再加 -cm 应该是-m,否则新添加的会把上一次添加的用户覆盖掉。
cat .htpassfile
vim /etc/httpd/conf.d/vhost.conf
添加:
<Directory "/var/www/html">
AuthUserFile /etc/httpd/.htpasswdfile
Authtype basic #代表最基本的密码认证
AuthName "please input username and passwd" #是在浏览器里认证框里提示的话语
Require valid-user
</Directory>
Require user admin #只允许admin认证,对其他用户没有授权
Require valid-user #使得htpassfile里的用户都可以使用认证登陆。
- 创建用户

- 查看

- 配置文件内容

- 测试

- 输入密码,就可访问

6.apache 的语言支持
Apache除了默认支持html语言,还可支持 php perl python语言。
1.php语言的支持
yum install php -y #下载php插件
systemctl restart httpd
vim /var/www/html/index.php
添加 测试页
<?php
phpinfo();
?>
2.vim /etc/httpd/conf.d/vhost.conf
注释掉<Directory "/var/www/html"
3.systemctl restart httpd
测试:
172.25.60.1/index.php
安装php

编辑配置文件,重启服务

编辑内容

测试:

2.python语言
yum search wsgi
yum install mod_wsgi.x86_64 -y
将自己的测试python 脚本(scripts.wsgi)放在/var/www/html目录下
chmod +x script.wsgi
vim /etc/httpd/conf.d/vhost.conf
添加
WSGIScriptAlias /WSGI /var/www/html/script.wsgi
测试:
172.25.60.1/WSGI

3.perl语言
yum install httpd-manual
systemctl restart httpd
172.25.60.1/manual/
点击CGI——
查看CGI的实例命令
安装httpd-manual

重启服务

测试:

7.HTTPS配置
1.https是什么
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。
HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。
2.配置步骤:
yum install mod_ssl -y #设置加密
cd /etc/httpd/conf.d/
ls
systemctl restart httpd
netstat -antlupe | grep httpd #443端口开启
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload


执行genkey www.westos.com 命令要执行 必须下载yum install crypto-utils 用来设置认证
yum install crypto-utils.x86_64 -y
genkey www.westos.org







然后在浏览器中添加自己的证书;
8.设定https虚拟主机,网页重写
1.
vim /etc/httpd/conf.d/vhost.conf
创建一个虚拟访问站点(login.westos.org) 端口为443
2.创建相关文件;

3.指引网页重写

4.测试:

9.正反向代理
1.代理服务器
从概念上来说,代理服务器(Proxy Server)是一种代理网络用户去取得网络信息的存在,是一种网络信息中转站。
代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。
代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性、缓存、内容过滤、访问控制管理等功能。更重要的是,代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。
2.正向代理
原理图:

设置方法:
在能联网的主机上:
1.vim /etc/resolv.conf #添加dns解析
nameserver 114.114.114.114
yum install squid -y


2.vim /etc/squid/squid.conf 编辑配置文件

http access allow all
http port 3128
cache_dir ufs /var/spool/squid 100 16 256
3.systemctl restart squid
4.cd /var/spol/squid
5.

6.
firewall-cmd --permanent --add -port=3128/tcp
firewall-cmd --reload
测试:

在不能上网的主机上:
添加代理信息:


这样它就能连上网,但是不能ping通baidu
3.反向代理
反向代理一般是从服务端出发,从网络或者客户(端)发出反向代理出请求,反向代理服务器收到需求后判断请求走向何处,然后再将结果反馈给客户端。反向代理闭环完成。
cd /var/www/html
vim index.html 随便写点东西
systemctl restart httpd

在另一台虚拟机中
yum search squid
yum install squid.x86_64 -y
vim /etc/squid/squid.conf
systemctl restart squid
netstat -antlupe | grep squid


然后在浏览器里访问,就可以看到编辑的内容了;
4.反向代理的轮询机制
(用来均衡服务器的压力)
vim /etc/squid/squid.conf
http_port 80 vhost vport
cache_peer 172.25.60.1 parent 80 0 proxy-only round-robin originserver name=web1 weight=2
cache_peer 172.25.60.2 parent 80 0 proxy-only round-robin originserver name=web2 weight=1
#weiget表示权重,这里表示访问2次172.25.60.1 后访问一次 172.25.60.2