【Squid二】使用squid和nginx服务搭建反向缓存代理服务

news2025/1/9 1:38:22

使用squid和nginx服务搭建反向缓存代理服务

  • 1.反向代理
    • 1.1 反向代理概述
    • 1.2 反向代理工作机制
  • 2.搭建squid反向代理服务
    • 2.1 Nginx服务器端配置
    • 2.2 squid反向代理服务器配置
  • 3.搭建nginx反向缓存代理服务
    • 3.1 nginx反向缓存代理服务配置
    • 3.2 nginx服务端配置
    • 3.3 客户端验证访问

参见squid正向服务代理

1.反向代理

1.1 反向代理概述

如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。
在这里插入图片描述

1.2 反向代理工作机制

反向代理网站加速

在这里插入图片描述
工作机制:

  • 缓存网页对象,减少重复请求
  • 互联网请求轮训或按权重分配到内网Web服务器
  • 代理用户请求,避免用户直接访问Web服务器,提高安全

在这里插入图片描述

2.搭建squid反向代理服务

在这里插入图片描述

2.1 Nginx服务器端配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

(1)安装nginx服务

cd /etc/yum.repos.d
rz -E
#nginx.repo
yum -y install nginx

(2)制作nginx服务的网页根目录数据内容

 cd /usr/share/nginx/html
 echo '<h1>IP:192.168.80.30,GZY like mygirl!!!</h1>' > test.html
 
 ###另一服务端的网页根目录
 echo '<h1>IP:192.168.80.40,GZY like dacing!!!</h1>' > test.html

(3)修改/etc/nginx/nginx.conf配置文件,关闭长连接保持功能

vim /etc/nginx/nginx.conf  
###在第27行关闭nginx服务的长连接保持功能
    keepalive_timeout  0;

在这里插入图片描述

(4)启动nginx服务

systemctl restart nginx
systemctl enable nginx
systemctl status nginx
netstat -lntp | grep nginx

在这里插入图片描述

2.2 squid反向代理服务器配置

(1)修改squid的主配置文件/etc/squid.conf,添加反向代理配置项

vim /etc/squid.conf
......
--60行--修改,插入
http_port 192.168.80.20:80 accel vhost vport
cache_peer 192.168.80.30 parent 80 0 no-query originserver round-robin max_conn=5000 weight=1 name=web1
cache_peer 192.168.80.40 parent 80 0 no-query originserver round-robin max_conn=5000 weight=1 name=web2
cache_peer_domain web1 web2 www.gzy.com
#表示对www.gzy.com的请求,squid向192.168.80.30和192.168.80.40的80端口发出请求
----------------------------------------------------------------------------------------------------------
http_port 80 accel vhost vport #squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。
accel :反向代理加速模式
vhost :支持域名或主机名来表示代理节点
vport :支持IP和端口来表示代理节点

parent :代表为父节点,上下关系,非平级关系
80 :代理内部web服务器的80端口
0 :没有使用icp(电信运营商),表示就一台squid服务器
no-query :不做查询操作,直接获取数据
originserver :指定是源服务器
round-robin :指定 squid 通过轮询方式将请求分发到其中一台父节点
max_conn :指定最大连接数
weight : 指定权重
name :设置别名

在这里插入图片描述
(2)清空之前透明模式配置的iptables规则

iptables -F
iptables -t nat -F

(3)关闭Apache服务,并重启squid服务

systemctl stop httpd       #防止httpd服务使用的80端口号和quid反向代理配置的监听端口冲突
systemctl restart squid
systemctl status squid
netstat -lntp | grep squid

在这里插入图片描述
(4)客户端浏览器访问验证

在客户端中添加squid服务器的IP地址与域名对应对应;

vim /etc/hosts
###添加下面squid服务器与IP地址之间的对应关系
192.168.80.20 www.gzy.com

在这里插入图片描述

http://192.168.80.20/test.html
http://www.gzy.com/test.html

在这里插入图片描述
在这里插入图片描述
(5)squid反向代理和nginx服务端跟踪日志查看客户端浏览访问记录

squid反向代理跟踪日志;

tail -f /usr/local/squid/var/logs/access.log 

在这里插入图片描述
nginx服务端跟踪日志;

tail -f /var/log/nginx/access.log

在这里插入图片描述
在这里插入图片描述

3.搭建nginx反向缓存代理服务

在这里插入图片描述

3.1 nginx反向缓存代理服务配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

(1)安装nginx服务

cd /etc/yum.repos.d
rz -E
#nginx.repo
yum -y install nginx

(2)修改/etc/nginx/nginx.conf配置文件,关闭长连接保持功能

vim /etc/nginx/nginx.conf  
###在第27行关闭nginx服务的长连接保持功能
    keepalive_timeout  0;

在这里插入图片描述

(3)启动nginx服务

systemctl restart nginx
systemctl enable nginx
systemctl status nginx
netstat -lntp | grep nginx

在这里插入图片描述
(4)修改/etc/nginx/nginx.conf配置文件,添加反向代理缓存配置项

vim /etc/nginx/nginx.conf 
###在31行左右添加如下内容
   upstream web_server  {
   server 192.168.80.30:80;
   server 192.168.80.20:80;
   }
   proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

###创建反向缓存代理日志保存文件/data/nginx/cache
mkdir -p /data/nginx/cache

在这里插入图片描述
(5)修改/etc/nginx/conf.d/default.conf配置文件,添加proxy转发模块

vim /etc/nginx/conf.d/default.conf 
###在11行添加下面内容
    proxy_cache my_cache;
    proxy_cache_key $request_uri;
    proxy_cache_valid 200 5m;
    add_header Nginx-Cache-Status $upstream_cache_status;
    proxy_pass http://web_server;

在这里插入图片描述
(6)重启nginx服务

nginx -t
systemctl restart nginx
systemctl status nginx
netstat -lntp | grep nginx

在这里插入图片描述

3.2 nginx服务端配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

(1)安装nginx服务

cd /etc/yum.repos.d
rz -E
#nginx.repo
yum -y install nginx

(2)制作nginx服务的网页根目录数据内容

 cd /usr/share/nginx/html
 echo '<h1>IP:192.168.80.30,GZY like mygirl!!!</h1>' > test.html
 
 ###另一服务端的网页根目录
 echo '<h1>IP:192.168.80.20,GZY like DZG520!!!</h1>' > test.html

(3)修改/etc/nginx/nginx.conf配置文件,关闭长连接保持功能

vim /etc/nginx/nginx.conf  
###在第27行关闭nginx服务的长连接保持功能
    keepalive_timeout  0;

在这里插入图片描述

(4)启动nginx服务

systemctl restart nginx
systemctl enable nginx
systemctl status nginx
netstat -lntp | grep nginx

在这里插入图片描述

3.3 客户端验证访问

http://192.168.80.40/test.html

在这里插入图片描述

在这里插入图片描述

再次重启nginx反向代理服务器后,进行访问验证;

systemctl restart nginx

在这里插入图片描述
在这里插入图片描述

查看nginx反向代理缓存的日志文件信息;

cd /data/nginx/cache/c/97

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(万字文)快速入门uniapp——从环境搭建到项目实践

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;快速入门uniapp——从环境搭建到项目实践 文章目录 初步介绍UniApp开发环境搭建下载和安装UniApp开发工具&#xff1a;创建新项目&#xff08;HBuilderX&#xff09;开发工具界面介绍 UniApp基础知识…

数据战略的理解与实施指南

虽然大多数公司都认识到他们的数据是一项战略资产&#xff0c;但许多公司并没有充分利用它来取得进展。在本文中&#xff0c;我们讨论了成功数据战略的关键要素&#xff0c;这些要素将帮助您基于数据分析而不是直觉做出明智的决策。 尽管公司在数据和分析计划方面的投资比以往任…

2021 RoboCom 世界机器人开发者大赛-高职组(初赛)

编程题得分&#xff1a;100 总分&#xff1a;100 目录 7-1 机器人打招呼 (5分) 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 7-2 人脸识别 (10分) 输入格式&#xff1a; 输出格式&#xff1a; 输入样例 1&#xff1a; 输…

SAP VC 可配置物料超级BOM简介

`1、可配置物料(Configurable Material)是SAP系统中PP模块一个比较高级的功能。在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线…

【机器学习】支持向量机(下)

支持向量机&#xff08;下&#xff09; 目录 八、支持向量机的求解实例九、核函数1、核函数的引入2、核函数的示例 十、软间隔1、何为软间隔2、引入软间隔后的目标方程 十一、正则化十二、关于支持向量机的分类十三、数据标准化的影响【机器学习】支持向量机&#xff08;上&…

网络协议与攻击模拟-15-DNS协议

DNS 协议 1、了解域名结构 2、 DNS 查询过程 3、在 Windows server 上部署 DNS 4、分析流量 实施 DNS 欺骗 再分析 一、 DNS 1、概念 ● DNS ( domain name system &#xff09;域名系统&#xff0c;作为将域名的 IP 地址的相互映射关系存放在一个分布式的数据库&#xff0…

【开源项目】智慧仓储~某东数字孪生智慧仓储——开源工程及源码

某东大型仓储工程及源码免费赠送&#xff0c;领先行业智能仓储解决方案&#xff01; 项目介绍 数字孪生技术为仓储管理带来革命性的突破。通过数字孪生的应用&#xff0c;实现智能化的仓储管理&#xff0c;提供准确、高效的仓库操作与分析。 利用数字孪生技术&#xff0c;将数据…

做银行测试,高端大气上档次?

前几天正好去某银行进行测试基础的培训&#xff0c;在和相关负责人聊了些内容后&#xff0c;想了想写一下自己的看法吧。 作为传统行业的银行&#xff0c;可以说对质量的重视程度应该在航天、轨道、军工、机械类似的关键性行业之间&#xff0c;和钱打交道的东西自然 很赚钱不…

AI Chat 设计模式:4. 建造者模式

本文是该系列的第四篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的旁白与思考。 问题列表 Q.1 说说建造者模式A.1Q.2 “将一个复杂对象的构建过程和其表示分离”&#xff0c;这里不是很清…

2023年软考一般什么时候出成绩呢?在线蹬?

软考成绩一般在考试结束后的两个月内公布&#xff0c;而且每次查询时间并不是固定的&#xff0c;比如上半年5月软考考试成绩查询时间一般是7月初&#xff0c;下半年11月初软考成绩查询时间一般就在12月底左右&#xff08;如图所示&#xff09; 过了23年上半年的软考&#xff0c…

电动力学复习提纲

电动力学复习提纲 电动力学核心知识点 电磁场能量密度和能流 场和电荷的能量守恒电磁场的能量密度和能流密度 电偶极矩&#xff0c;磁偶极矩和电四极矩 电极化强度矢量与电偶极矩 磁化强度与磁偶极矩 电势的多级展开 磁矢势的多级展开 非相对论体系的电磁能 静电能 小区…

13万字智慧能源大数据分析平台及能源集团数字化平台建设方案

导读&#xff1a;原文《13万字智慧能源大数据分析平台及能源集团数字化平台建设方案》共335页word&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 目录 智慧能源大数…

干货:在校园里如何创业做外卖平台

干货&#xff1a;在校园里如何创业做外卖平台 外卖能够满足大学生消费者在足不出寝的情况下&#xff0c;方便省时的用餐需求&#xff0c;这也是外卖市场在大学快速发展的主要原因。有关数据显示&#xff0c;40.3%大学生群体月均点外卖次数在5-10次之间&#xff0c;37%40.3%大学…

Mybatis处理复杂查询环境

复杂查询环境 多对一和一对多 多个工作者对应一个协调人 对于工作者(worker)而言&#xff0c;多个工作者关联一个协调人(coordinator)&#xff08;多对一&#xff0c;关联&#xff09; 对于协调人而言&#xff0c;一个协调人有很多工作者&#xff08;一对多&#xff0c;集合&a…

SQL Server表分区

什么是表分区 一般情况下&#xff0c;我们建立数据库表时&#xff0c;表数据都存放在一个文件里。 但是如果是分区表的话&#xff0c;表数据就会按照你指定的规则分放到不同的文件里&#xff0c;把一个大的数据文件拆分为多个小文件&#xff0c;还可以把这些小文件放在不同的…

jvm自带故障处理工具之jmap

jmap是java虚拟机自带的一种内存映像工具。 一般通过jmap可以生成堆的当前使用情况的快照&#xff0c;然后用它来分析或者调优JVM内存使用。 jmap -help jmap -histo:live pid 打印堆的直方图。对于每个Java类&#xff0c;将打印对象数&#xff0c;以字节为单位的内存大小以…

ROS:API操作

目录 一、初始化1.1C版1.2Python版 二、话题与服务相关对象2.1发布对象2.1.1C版2.1.2Python版 2.2订阅对象2.2.1C版2.2.2Python版 2.3服务对象2.3.1C版2.3.2Python版 2.4客户端对象2.4.1C版2.4.2Python版 三、回旋函数3.1C版3.1.1spinOnce()3.1.2spin()3.1.3二者比较 3.2Python…

安装Spark

安装Spark 任务描述 本关任务&#xff1a;完成Spark安装。 相关知识 Apache Spark 是一个新兴的大数据处理通用引擎&#xff0c;提供了分布式的内存抽象。Spark 最大的特点就是快&#xff0c;可比 Hadoop MapReduce 的处理速度快 100 倍。本节将详细说明 Spark 的安装。 下…

C++STL算法之堆算法

堆算法 堆堆算法函数堆算法函数的使用make_heappush_heappop_heapsort_heap 堆 堆就是如图&#xff0c;像这样一种连续的数据&#xff0c;但是注意0的位置不存储数据&#xff0c;目的是为了让编号一置 这里介绍两个概念 大顶堆&#xff1a; 一段内存在二叉数的基础上有序&#…

原生 js (前后端不分离)复选框动态控制表格列的显示隐藏 存储状态

写个div 绑定点击事件 点击设置按钮 让div和复选框显示 <div class"control" οnclick"controlClk()">❁</div> init()// var storeCheckbox window.sessionStorage.getItem(storeCheckbox);function getStore(name) {var storeCheckbox win…