Linux[高级管理]——Squid代理服务器的部署和应用(反向代理详解)

神秘泣男子 2024-07-02 10:37:01 阅读 81

 

🏡作者主页:点击! 

👨‍💻Linux高级管理专栏:点击!

⏰️创作时间:2024年6月24日11点11分

🀄️文章质量:95分


目录

————前言————

Squid的几种模式

1. 传统模式

2. 透明模式

3. 反向代理模式

实验环境

1.Web服务器配置

2.代理服务器配置

3.PC机(外网)

4.访问测试

5.证明真理


————前言————

Squid是一种高性能的代理缓存服务器,用于改善网络性能、提供缓存服务以及增强网络安全性。它在企业网络和互联网服务提供商中广泛使用,尤其适用于加速web访问、减少带宽使用和提高网络访问控制。下面是Squid代理服务器的详细介绍,包括其功能、部署和应用。

建议从传统模式开始看,有squid的安装教程!

建议从传统模式开始看,有squid的安装教程!

建议从传统模式开始看,有squid的安装教程!

第一篇:Squid代理服务器的部署和应用(传统模式详解)

第二篇:Squid代理服务器的部署和应用(透明模式详解)

第三篇:Squid代理服务器的部署和应用(反向代理详解)

按着顺序观看效果更好

Squid的几种模式

Squid代理服务器可以部署在多种模式下,以满足不同的网络需求。下面是对Squid三种主要模式的介绍:传统模式、透明模式和反向代理模式。

1. 传统模式

传统模式(Forward Proxy)是最常见的代理模式,客户端显式地将请求发送到Squid代理服务器,由代理服务器转发请求到目标服务器,并将响应返回给客户端。

特点:

客户端需要配置代理服务器的IP地址和端口。主要用于缓存和访问控制。常用于网络加速、带宽优化以及网络访问控制。

2. 透明模式

透明模式(Transparent Proxy)允许客户端无需配置代理设置,所有的流量通过网络设备(如路由器或防火墙)自动重定向到Squid代理服务器。

特点:

客户端无需配置代理服务器。常用于企业网络以便无缝管理和控制网络流量。配置相对复杂,需要配合网络设备(如iptables或思科设备)。

3. 反向代理模式

反向代理模式(Reverse Proxy),也称为Web加速器模式,Squid代理服务器位于客户端和Web服务器之间,客户端请求被转发到代理服务器,再由代理服务器请求实际的Web服务器。通常用于加速Web应用和负载均衡。

特点:

客户端请求无感知代理存在。提供Web服务器的缓存和负载均衡服务。常用于提高Web服务器的性能和可靠性。

本章节我们围绕反向代理的模式来讲解

前边文章有讲解 传统模式 透明模式的方式

建议从传统模式开始看,有squid的安装教程!

实验环境

一台代理服务器squid

两台web服务器

Web1:192.168.192.112

Web2:192.168.192.100

一台PC模拟外网通过squid反向代理访问内网web

1.Web服务器配置

首先就是web服务器的安装和配置

第一台192.168.192.112

关闭防火墙 selinux

yum install -y httpd

[root@localhost ~]# echo '22222222' > /var/www/html/index.html

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# curl 127.0.0.1

11111111

第二台192.168.192.100

关闭防火墙 selinux

yum install -y httpd

[root@localhost ~]# echo '22222222' > /var/www/html/index.html

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# curl 127.0.0.1

11111111

两台web服务器 内容一样

2.代理服务器配置

安装squid

自行安装 建议

建议从传统模式开始看,有squid的安装教程!

修改配置文件

vim /etc/squid.conf

http_access allow all

因为你做了反向代理你就不能拒绝所有的流量,你也不知道谁会访问你,所以你要允许所有访问

http_port 100.0.0.1:80 accel vhost vport

加速访问

支持主机名访问

支持端口访问

cache_peer 192.168.192.112 parent 80 0 no-query originserver round-robin weight=1

cache_peer 192.168.192.100 parent 80 0 no-query originserver round-robin weight=1

解释如下了解即可

http_access allow all :此行允许所有 HTTP 流量通过 Squid 代理。对于生产环境,这不是推荐的设置,因为它对任何传入请求打开代理,这可能会带来安全风险。为了更安全的设置,您通常会限制对特定 IP 地址或网络的访问。

http_port 100.0.0.1:80 accel vhost vport :此行指定 Squid 应在加速器模式下侦听 IP 地址 100.0.0.1 和端口 80accel 关键字打开加速器模式, vhost 支持虚拟主机, vport 允许每个虚拟主机使用不同的端口。

cache_peer 行:这些行定义 Squid 将在反向代理设置中用作源服务器的后端服务器(对等点)。

cache_peer 192.168.192.112 parent 80 0 no-query originserver round-robin weight=1 :这定义了端口 80 上 IP 地址 192.168.192.112 的后端服务器。 parent 关键字将其指定为上游服务器, no-query 表示它不会使用 ICP/HTCP 查询来确定状态, originserver 表示它是源服务器服务器, round-robin 表示请求将以轮询的方式分发, weight=1 设置负载分发权重。cache_peer 192.168.192.100 parent 80 0 no-query originserver round-robin weight=1 :这与上一行类似,但在 IP 地址 192.168.192.100 处定义了另一个后端服务器。

更改完成之后启动服务

squid

查看端口确保是80端口 如果不是那说明你的步骤出了问题

80端口

3.PC机(外网)

win7测试

关闭防火墙配置ip地址

返回代理服务

ping测试保持连通性

4.访问测试

访问成功

接下来我们通过查看web服务器上的日志

查看访问的哪一台web服务器的服务

通过查看我们可以看到是 模拟外部的PC机访问的是192.168.192.100 的Web服务

虽然显示的是192.168.192.111 访问的web服务 但是显示的是Windows系统

我们代理服务器是Centos系统

web服务器100

我们使用代理服务器来访问查看显示什么信息

代理服务器访问

[root@localhost ~]# curl 192.168.192.100

111111111

再次查看web日志 很明显是不一样的

**总结**
5.证明真理

通过上述的日志证明

外部的PC访问内部的Web服务PC将请求交给Squid的外部接口然后外接口的IP以内外的身份(也就是内外的接口)来进行访问服务



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。