【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)

apache的使用

  • 一、apache的基本介绍
    • (1)Apache的作用
    • (2)Apache的安装和启用
    • (3)Apache的基本信息
    • (4)基本查看
  • 二、更改访问apache默认访问
    • (1)Apache的访问端口进行修改
    • (2)Apache的默认发布文件进行修改
    • (3)默认发布目录更改
  • 三 、Apache的访问控制
    • (1) 实验环境
    • (2)创建网页访问黑名单
    • (3)创建ip黑名单
    • (4)创建用户认证
  • 四、单主机发布多个网页 (虚拟机)
  • 五、apache支持的语言格式
    • (1)创建php格式
    • (2)创建cgi格式(cgi通用网关接口)
    • (3)创建wsgi文件(支持python语言)
  • 六、网站加密认证(用https访问)
    • (1)认证的意义
    • (2)安装认证
    • (3)对用户访问信息强制加密
  • 七、squid正反向代理
    • (1)正向代理
    • (2)反向代理
  • 八、squid代理模拟仿真实验条件
  • 九、squid正向代理
  • 十、squid反向代理

一、apache的基本介绍

(1)Apache的作用

我们在访问web服务器时通常使用的是http://方式,即超文本传输协议,提供这一协议服务的软件主要有Apache、nginx、stgw、jfe、Tengine等,比如百度web服务器使用的是Apache,淘宝web服务器使用的是Tengine。Linux发行的各个版本的系统绝大多数都使用的是Apache (Apache HTTP服务器),因此在这里我们主要对Apache的管理及web优化进行说明。

(2)Apache的安装和启用

本文用的虚拟机:
ip为172.25.42.100
1.、 虚拟机安装apchae

dnf install httpd.x86_64 -y

2.、开启火墙设置

vim /etc/sysconfig/selinux ##将其关闭为disabled,然后重启
systemctl enable --now httpd ##开启服务并设定服务位开机启动 
firewall-cmd --list-all##查看火墙信息
firewall-cmd --permanent --add-service=http ##在火墙中永久开启http访问
firewall-cmd --permanent --add-service=https ##在火墙中永久开启https访问
firewall-cmd --reload ##刷新火墙使设定生效

(3)Apache的基本信息

服务名称 httpd
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/*.conf 子配置文件
默认发布目录 /var/www/html
默认发布文件 index.html
默认端口 80
加密端口 443
用户 apache
日志地址 /etc/httpd/logs
查看日志的方式 cat /etc/httpd/logs/

(4)基本查看

开启apache后可以查看到基础网页,说明apache服务开启
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第1张图片

二、更改访问apache默认访问

(1)Apache的访问端口进行修改

1、 进入配置文件

vim /etc/httpd/conf/httpd.conf

用/Listen搜索并修改端口为8080
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第2张图片
2、建立发布文件

touch /var/www/html/index.html


hello                               文件内容
/

2、更改防火墙设置(虚拟机)

systemctl start firewalld.service
firewall-cmd --permanent --add-port=8080/tcp       将8080通道打开
firewall-cmd --reload 
systemctl restart httpd
netstat -antlp                                    查看端口8080是否打开

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第3张图片

3、访问8080端口,修改访问地址

http://172.25.254.100:8080
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第4张图片

(2)Apache的默认发布文件进行修改

1、 在/var/www/html下新建立一个westos.html文件,内容如下
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第5张图片
2、在配置文件下更改默认发布目录

vim /etc/httpd/conf/httpd.conf

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第6张图片
3、重启httpd服务

systemctl restart httpd.service 

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第7张图片
完成默认发布地址的更改

(3)默认发布目录更改

新建的默认发布目录不在/var/www/下,一定要给予授权
1、建立目录

mkdir /var/www/westos -p
vim /var/www/westos/index.html

/
ckck

2、vim /etc/httpd/conf/httpd.conf 进入配置文件,修改默认发布地址并授权
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第8张图片

3、 重启httpd服务

systemctl restart httpd.service 

在网上查看到了/var/www/westos/index.html文件的内容
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第9张图片
完成默认发布目录的修改

三 、Apache的访问控制

(1) 实验环境

1、建立目录

 mkdir /var/www/westos -p
 vim /var/www/westos/index.html
 
//
ckck
/

2、vim /etc/httpd/conf/httpd.conf 进入配置文件,修改默认发布地址并授权
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第10张图片
3、 重启httpd服务

systemctl restart httpd.service 

发现了在/var/www/westos/index.html文件
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第11张图片

(2)创建网页访问黑名单

1、 进入配置文件

vim /etc/httpd/conf/httpd.conf

2、 创建黑白名单
任意位置设置即可
先后顺序为先允许白名单,再允许黑名单
这样172.25.42.250就不能访问
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第12张图片

3、 重启httpd服务

systemctl restart httpd.service 
curl 172.25.42.100/westos/index.html        进行访问

4、结果

172.25.42.100主机能正常访问
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第13张图片
ip为172.25.42.250的主机不能访问
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第14张图片
实验完毕,记得将改变还原

(3)创建ip黑名单

基本同上白名单一样,配置内容改为如下即可

<Directory "/var/www/html/westos">
        Order Allow,Deny
        Allow from All
        Deny from 192.168.0.10
</Directory>

(4)创建用户认证

1、 创建认证用户
在/etc/httpd目录下,生成用户认证文件apacheauth,这里用户认证文件中包含admin、lee两个用户的认证信息

cd /etc/httpd/
htpasswd -cm apacheauth admin

注意-cm是创建新用户的意思,如果重复-cm则会覆盖原来的用户。因此存在一个用户了用-m添加另一个用户即可
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第15张图片
2、 进入文件进行配置,创建用户认证
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第16张图片
3、 重启httpd服务

systemctl restart httpd.service 

再次访问地址时会出现如下界面,需要输入密码
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第17张图片
4、 注意如果有两个以上的用户,则配置文件改为如下
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第18张图片

四、单主机发布多个网页 (虚拟机)

我们在www.baidu.com的主页面中可以点击进入不同的网站,其本质是在访问百度的web服务器时通过不同的域名进入了不同的网站,这一功能可以通过 Apache虚拟主机来实现。
Apache虚拟主机的作用就是让一个apache为多个域名服务,在访问不同的域名的时候跳转到不同的网页。
具体操作如下:

1、 在/var/www的虚拟主机vhost下分别建立三个网页,分别如下所示

[root@ansible ~] mkdir /var/www/vhost/{java,linux,python} -p   
[root@ansible ~] echo java‘page > /var/www/vhost/java/index.html
[root@ansible ~] echo pyhon‘page > /var/www/vhost/python/index.html
[root@ansible ~] echo linux‘page > /var/www/vhost/linux/index.html

2、 进入子配置文件,建立虚拟主机

[root@westoslinux www] cd /etc/httpd/conf.d
[root@westoslinux conf.d] vim vhost.conf

///
<VirtualHost _default_:80>
   DocumentRoot /var/www/html
   CustomLog logs/default.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerName linux.westos.org
  DocumentRoot /var/www/vhost/linux
  CustomLog logs/linux.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerName java.westos.org
  DocumentRoot /var/www/vhost/java
  CustomLog logs/java.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerName python.westos.org
  DocumentRoot /var/www/vhost/python
  CustomLog logs/python.log combined
</VirtualHost>

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第19张图片

3、重启httpd服务

systemctl restart httpd.service 

4、 真机做地址解析

vim /etc/hosts

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第20张图片
5、进入浏览器访问
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第21张图片

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第22张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第23张图片

五、apache支持的语言格式

(1)创建php格式

PHP 是一种 HTML 嵌入式的脚本语言。php文件以.php结尾。它的很多语法来自 C,Java 和 Perl,并具有几个 PHP 独有的特点。该语言的主要目标是让 Web 开发人员快速地书写动态生成的网页
注意php里面内容一定严格按照格式要求对齐
1、创建文件

[root@westoslinux conf.d] cd /var/www/html/
[root@westoslinux html] vim index.php

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第24张图片
2、结果发现空白
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第25张图片
因为这个需要php软件提供支持,所以需要下载php服务软件。
3、安装php服务

dnf install php
systemctl restart httpd.service 
ls /etc/httpd/conf.d/                           查看配置文件

4、结果
发现apache服务里面有了php的服务配置文件,apache可以结合php一起服务
在这里插入图片描述
在浏览器所在真实主机中再次访问该index.php文件,出现了php测试页面,index.php文件中的代码成功执行,此时Apache支持php语言
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第26张图片

(2)创建cgi格式(cgi通用网关接口)

我们知道,cgi通用网关接口中主要使用的是perl语言。其实CGI其实是一个接口规范或协议,按照CGI接口规范开发的程序都可以叫做CGI程序。几乎所有的语言都可以通过实现CGI或者fastcgi协议编写一个web应用 。如C、Java、PHP、Perl、Asp、.Net

1、创建新的位置,生成配置文件

mkdir /var/www/html/cgidir
vim /var/www/html/cgidir/index.cgi

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第27张图片

2、要让里面的cgi里面的东西执行则需要在http的子文件进行配置

 vim /etc/httpd/conf.d/vhost.conf

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第28张图片
3、给执行权限,并重启httpd

chmod +x index.cgi 
systemctl restart httpd.service 

4、 结果如下
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第29张图片

(3)创建wsgi文件(支持python语言)

wsgi与cgi的功能类似,其主要使用的是python语言。wsgi指定了web服务器和Python web应用或web框架之间的标准接口,以提高web应用在一系列web服务器间的移植性。
1、 创建wsgi目录及其下属文件

cd /var/www/html/
mkdir wsig
cd wsig
vim index.wsgi

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第30张图片

2、 为了能够执行内容,需要下载python文件,,重启服务

dnf install python2.x86_64
systemctl restart httpd.service 

3、 python执行要求高,在子配置文件里面设定引导位置文件
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第31张图片
4、 重启httpd服务即可
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第32张图片

六、网站加密认证(用https访问)

通常我们在访问浏览器如www.taobao.com时,页面会自动跳转以https方式进行访问,https服务相比于http多了加密功能,其服务页面基本都具有登录入口。一般来说,用户用浏览器访问服务器时,会在自己的客户主机中输入用户名和密码,输入完成后通过网络传输给服务器进行验证。为了保证用户名和密码的安全性,在传输前浏览器会对用户名和密码等传输数据使用一些技术手段进行加密,同时为了保证传输数据的不可伪造性,还会生成相应的证书;当服务器接收到客户主机传输来的数据后会先对用户证书进行校验,校验通过后使用服务器内部存储的私钥对用户的加密数据进行解密,进行用户验证

(1)认证的意义

浏览器会集成锁和证书,对用户的账户和密码等信息加密上锁,厂商会用证书校验锁是否为自己的锁,然后对锁进行解密。

(2)安装认证

1、下载加密插件(下载后系统支持加密,但是还未经过认证)

dnf install mod_ssl -y

2、 http文件里面查看证书的设置地址

 cd /etc/httpd/conf.d/
 ls

在http的配置文件里面找到了ssl认证加密模块
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第33张图片
3、 开启火墙等服务

systemctl start firewalld.service 
firewall-cmd --permanent  --add-service=https
firewall-cmd --reload 
systemctl restart httpd

4、 访问https://172.25.254.100效果如下
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第34张图片
浏览器警告该网页证书未通过CA机构验证,接受风险继续访问,查看该网页默认证书的详细信息,可以看到证书中多处信息未知
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第35张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第36张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第37张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第38张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第39张图片
5、 生成证书和文件
我们需要通过以下命令重新生成密钥和证书:发送请求,新建密钥文件并使用rsa对其进行加密,输出密钥文件到/etc/httpd/westos.org.key;生成证书文件,其格式为x509,证书有效期为365天,输出证书文件到/etc/httpd/westos.org.crt

openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/httpd/westos.org.key -x509 -days 365 -out /etc/httpd/westos.org.crt

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第40张图片
6、查看生成的证书和钥匙

 ls /etc/httpd/

在这里插入图片描述
7、在http服务中重新读取证书和服务,并重启http
vim /etc/httpd/conf.d/ssl.conf 【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第41张图片

systemctl restart httpd

8、删掉旧证书
在浏览器所在真实主机中再次访问https://172.25.254.133,查看该网页证书的详细信息,可以看到该网页证书已更新成我们所生成的证书,证书详细信息完善,只要将该证书发送给CA机构进行验证,验证后证书合法,网页就不会出现安全警告
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第42张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第43张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第44张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第45张图片
证书认证完成

(3)对用户访问信息强制加密

1、 建立素材

mkdir /var/www/login
vim /var/www/login/index.html

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第46张图片

2、 做虚拟主机导向,再重启http

vim /etc/httpd/conf.d/vhosts.conf 

这里写错了,忘记改了
正确的应该是:
画框部分的ServerName 后面服务网址应该是login.westos.org
即哪怕我们访问的是80端口的http://login.westos.org,它也会重新定向得到443端口的加密的https://ogin.westos.org。
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第47张图片

systemctl restart httpd

结果为输入http://login.westos.org地址也会强制走加密地址访问
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第48张图片

七、squid正反向代理

(1)正向代理

1、用户发送请求到自己的代理服务器
2、自己的代理服务器发送请求到服务器
3、服务器将数据返回到自己的代理服务器
4、自己的代理服务器再将数据返回给用户

正向代理有什么用为什么要这么做:
作用:正向代理隐藏了用户,用户的请求被代理服务器接收代替,到了服务器,服务器并不知道用户是谁。

用途:当你用浏览器访问被拒绝的网址时,被block(拒绝)时,搭建一个代理服务器,这样可以通过代理服务器进行访问。

(2)反向代理

1、用户发送请求到服务器(访问的其实是反向代理服务器,但用户不知道)
2、反向代理服务器发送请求到真正的服务器
3、真正的服务器将数据返回给反向代理服务器
4、反向代理服务器再将数据返回给用户
作用:用户请求过多,服务器会有一个处理的极限。所以使用反向代理服务器接受请求,再用均衡负载将请求分布给多个真实的服务器。既能提高效率还有一定的安全性。

用途:如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网。

正向代理与反向代理最简单的区别:
正向代理隐藏的是用户,反向代理隐藏的是服务器

八、squid代理模拟仿真实验条件

真实主机foundation40  ip:172.25.42.250 — 双网卡主机
虚拟主机p1 ip:172.25.42.100 — 单网卡主机
虚拟主机p2 ip:172.25.42.200 — 单网卡主机
虚拟主机p1,p2设定ip不能上网
双网卡主机设定ip1可以连接单网卡主机p1,p2,设定ip2可以上网。

九、squid正向代理

虚拟主机p1不能联网,真机可以上网,通过设置真机的正向代理,使得虚拟主机p1不能联网,但是可以通过真机访问网站。
1.、让真实主机变为路由器(先连wift)

systemctl start firewalld.service 
firewall-cmd --add-masquerade 

2、 对双卡主机设置网关,使其能上网

vim /etc/sysconfig/network-scripts/ifcfg-ens3         图1
nmclic connection reload
nmclic connection up 	System\ens3

图1
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第49张图片
3、设置虚拟机p1的地址

vim /etc/sysconfig/network-scripts/ifcfg-enp1s0      图1、设置ip
nmcli connection reload
nmcli connection up enp1s0

目前可以ping通真实主机,但是ping不同网络
图1
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第50张图片
4、查看虚拟机p1目前的效果
虚拟机p1里面的浏览器无法上网
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第51张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第52张图片
5、 双网卡真机中安装代理软件,设置参数

dnf install squid -y
vim /etc/squid/squid.conf           图1

【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第53张图片
6、真机重启服务,开启squid服务

systemctl restart squid 
systemctl start firewall.service
firewall-cmd --permanent --add-service=squid
firewall-cmd --reload

查看到真机的squid服务的开放端口为3128
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第54张图片

7、虚拟主机p1的浏览器进行设置
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第55张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第56张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第57张图片
设置为在真机查看到开放的端口
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第58张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第59张图片
8、实验结果
虚拟机p1连不上网络,但是浏览器设置了正向代理后可以上网
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第60张图片
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第61张图片

十、squid反向代理

企业反向设置的代理,保证了服务器的安全,加速客户访问速度(cdw加速)。

虚拟机p1            172.25.42.100               作为客户
真机foundation40    172.25.42.250               作为反向代理端口 
虚拟机p2            172.25.42.200               作为服务器

真机没有开启apache服务(httpd),通过虚拟主机开启80端口,squid服务开启,缓存服务器p2的80端口的信息。这样虚拟机主机p1作为客户,访问真机时,可以访问到存储在真机的虚拟机p2主机服务器的信息
1、 在真机中(安装过squid代理的机器)
将真机作为代理端,反向代理虚拟机p2

vim /etc/squid/squid.conf

vhost:虚拟主机(支持虚拟域名) ;
vport: 支持虚拟端口(因为80端口不是它的);
缓存策略:缓存p2主机(172.25.42.200)的资源;
0:不需要备份主机;
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第62张图片
2、真机(代理服务器)重启squid和火墙等服务

systemctl stop httpd                      关闭apache服务
systemctl restart squid 
firewall-cmd  --permanent --add-sevice=http
firewall-cmd  -reload
netstat -antlp                            查看端口

可以看到真机虽然没有了apache的80端口,但是开启了虚拟的80端口
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第63张图片

3、在虚拟机p2作为最终的服务器,http发布文件方便检验实验效果。

vim /var/www/html/index.html

/
p2 主机
///

systemctl start httpd.service
systemctl start firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --reload 

4、虚拟机p1的浏览器需要取消之前的正向代理设置
因为之前的真机是作为正向代理,现在开启的是反向代理的模式。正向代理的3128端口已经关闭了,因此也需要取消虚拟机p1(客户)浏览器的正向代理。
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第64张图片
5、虚拟机p1(客户端口)访问真机的ip测试
可以发现虽然访问的真机的内容,但是却看到了主机p2(服务器)的内容
【linux进阶4】apache的服务使用(图文详解apache的多种使用方式)_第65张图片

你可能感兴趣的:(linux进阶,服务器,linux,centos)