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

使用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/htmlecho '<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/htmlecho '<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.hqwc.cn/news/7609.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

老照片修复:模糊褪色有划痕的老旧照片如何修复?

在我们的生活中&#xff0c;照片是记录我们生活的重要方式之一。无论是在手机相册里还是在家中的相册里&#xff0c;我们都有很多珍贵的照片&#xff0c;但是随着时间的推移&#xff0c;照片也会老化&#xff0c;甚至出现褪色、划痕、折痕、破损、发霉等情况&#xff0c;这些情…

2核4G服务器_4M带宽_CPU性能测评_60G系统盘

阿里云2核4G服务器297元一年、4M公网带宽、60G系统盘&#xff0c;阿里云轻量应用服务器2核4G4M带宽配置一年297.98元&#xff0c;2核2G3M带宽轻量服务器一年108元12个月&#xff0c;如下图&#xff1a; 目录 阿里云2核4G4M轻量应用服务器 2核4G服务器限制条件 轻量服务器介…

第 7 章 集合-----Scala集合继承图

7.1.1 不可变集合继承图 7.1.2 可变集合继承图 7.2.3 不可变数组与可变数组的转换 7.7.6 复杂 WordCount 案例 1&#xff09;方式一 object TestWordCount {def main(args: Array[String]): Unit {// 第一种方式&#xff08;不通用&#xff09;val tupleList List(("H…

自定义MVC

目录 一、MVC概念描述 1、什么是MVC&#xff1f; 2、什么是自定义MVC&#xff1f; 3、自定义MVC有什么用&#xff08;主要用途&#xff09;&#xff1f; 二、MVC三层架构 第一种版本 JSP页面 servlet 结果 第二种版本 JSP代码 servlet 结果 第三种版本 jsp页面 s…

HIve中的查询语句

文章目录 Hive中的查询语句1. 基础语法2. 基本查询&#xff08;Select…From&#xff09;2.1 数据准备&#xff08;0&#xff09;原始数据&#xff08;1&#xff09;创建部门表&#xff08;2&#xff09;创建员工表&#xff08;3&#xff09;导入数据 2.2 全表和特定列查询1&am…

Flutter 实现任意控件拖动

文章目录 前言一、如何实现&#xff1f;1、使用GestureDetector响应拖动事件2、使用Transform变换控件位置3、计算拖动区域 二、完整代码三、使用示例1、基本用法 总结 前言 使用flutter开发是需要控件能拖动&#xff0c;比如画板中的元素&#xff0c;或者工具条&#xff0c;搜…

arcgis api for JavaScript4.2x 在vue中白膜图层的加载、(分类、分段)渲染

这篇文章是对有webgis前端开发经验的人 1、假设之前的三维视图均已成功加载&#xff0c;获取到了三维视图&#xff0c;这里的三维视图变量定义的名字是mapView。&#xff08;PS&#xff1a;三维视图mapview在项目初始化已经设置了&#xff0c;本示例中会直接使用调用结果&…

Unity 热力图效果实现 笔记

Unity 热力图效果实现 笔记 参考文献连接&#xff1a; 1、人体热力图shader graph实现&#xff08;URP&#xff09; 超链接&#xff1a; https://www.youtube.com/watch?vKlMON4Dzq_0&t51s shader forge 翻译通用管线下 连接点实现方案&#xff1a; 2、碰撞热力图实现…

【python爬虫应用03】csdn个人所有文章质量分查询

&#x1f6e0;️ 环境准备 在开始编写代码之前&#xff0c;我们需要进行一些环境准备。以下是所需的环境和库&#xff1a; 操作系统&#xff1a;Windows编程语言&#xff1a;Python 3编辑器&#xff1a;VSCode&#xff08;可选&#xff09; 安装所需的库&#xff1a; reque…

php宝塔搭建EMLOG站长工具箱网站自适应PC手机端php源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。本期给大家带来一套站长工具箱网站自适应PC手机端php源码。感兴趣的朋友可以自行下载学习。 技术架构 PHP5.6 nginx mysql5.6 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#xff0c;宝塔添…

Spring Cloud

一、微服务架构 单体架构&#xff1a;将业务的所有功能集中在一个项 目中开发&#xff0c;打成一个包部署 分布式架构&#xff1a;根据业务功能对系统做拆分&#xff0c; 每个业务功能模块作为独立项目 开发&#xff0c;称为一个服务 微服务架构&#xff1a; 特征&#xff1a; …

CSS样式表

CSS样式表 1、CSS介绍 CSS Cascading Style Sheet 层叠样式表&#xff0c;或&#xff0c;级联样式表 表现HTML文件样式的计算机语言 修饰静态页面 配置脚本语言动态对网页元素进行样式格式化 排序 对元素的位置进行像素级精确控制 支持所有字体字号样式 对网页对象和模型样式…