linux高级管理——Squid代理

一、squid服务基础:

1.1缓存代理的概述:

代理的工作机制
当客户机通过代理来请求Web页面时.指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机要访问的页面,则由代理服务器向Internet发送访问请求.获得返回的Web页面以后.将网页数据保存到缓存中并发送给客户机。HTTP代理的缓存加速对象主要是文字.图像等静态Web元素。使用缓存机制后,当客户机在不同的时候访问同-Web元素.或者不同的客户机访问相同的Web元素时,可以直接从代理服务器的缓存中获得结果。这样就大大减少了向 Internet 提交重复的Web请求的过程,提高了客户机的 Web访问响应速度。
代理的基本类型
根据实现方式不同,代理服务可分为传统代理和透明代理两种常见的代理服务。

传统代理:也就是普通的代理服务.首先必须在客户机的浏览器.QQ聊天工具.下载软件等程序中手动设置代理服务器的地址和端口.然后才能使用代理来访问网络。对于网页浏览器.访问网站时的域名解析请求也会发给指定的代理服务器.

透明代理:提供与传统代理相同的功能和服务.其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由.防火墙策略将Web访问重定向.实际仍然交给代理服务器来处理。重定向的过程对客户机来说是“透明”的.用户甚至并不知道自己在使用代理服务.所以称为透明代理。使用透明代理时,网页浏览器访问网站时的域名解析请求将优先发给DNS服务器。

1.2编译安装squid:

配置Squid的编译选项时,将安装目录设为/usr/ local/squid,其他具体选项根据实际需要来定,配置前可参考./configure —-help”给出的说明。

[root@localhost squid-3.5.23]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linnux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex[root@localhost squid-3.5.23]# make
[root@localhost squid-3.5.23]# make install

 --prefix=/usr / local / squid:安装目录。

--sysconfdir=/etc:单独将配置文件修改到其他目录。

--enable—linux--netfilter:使用内核过滤。

--enable-async一io=值:异步I/O.,提升存储性能,相当于“--enable-pthreads --enable-storeio=ufs . aufs --with -pthreads --with-aufs一thread=值”.

--enable一default-err—language=Simplify_Chinese;错误信息的显示语言.

--disable-poll 与---enable一epoll:关闭默认使用poll模式.开启epoll模式提升性能。

--enable一gnuregex:使用GNU正则表达式。

 安装完后,创建链接文件.创建用户和组.

[root@localhost squid-3.5.23]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@localhost squid-3.5.23]# useradd -M -s /sbin/nologin squid
[root@localhost squid-3.5.23]# chown -R squid:squid /usr/local/squid/var/

 1.3Squid 的配置文件
Squid 服务的配置文件位于/etc/squid , conf,充分了解配置行的作用将有助于管理员根据实际情况灵活配置代理服务。

cache_effective_user squid 
##这一项指定squic的程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功!cache_effective_group squid

 

1.4 Squid的运行控制

检查配置文件语法是否正确

[root@localhost squid-3.5.23]# squid -k parse

 启动、停止 Squid
第一次启动Squid服务时,会自动初始化缓存目录。在没有可用的Squid服务脚本的情况下,也可以直接调用Squid程序来启动服务,这时需要先进行初始化。

[root@localhost ~]# squid -z
[root@localhost ~]# squid确认Squid服务处于正常监听状态。
[root@localhost ~]# netstat -anpt | grep "squid"

使用Squid服务脚本
为了使Squid服务的启动.停止.重载等操作更加方便.可以编写Squid服务脚本,并使用chkconfig和systemctl工具来进行管理。

[root@localhost ~]# vim /etc/init.d/squid#!/bin/bash
# chkconfig: 2345 90 25
# config: /etc/squid.conf
# pidfile: /usr/local/squid/var/run/squid.pid
# Description: Squid - Internet Object Cache.
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" instart)netstat -anpt | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "Squid is running"elseecho "正在启动squid..."$CMDfi;;stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -anpt | grep squidelseecho "Squid is not running."fi;;restart)$0 stop &> /dev/nullecho "正在关闭squid..."$0 start &> /dev/nullecho "正在启动squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0 {start | stop | restart | reload | check | status}";;
esac

这样一来.就可以通过Squid 脚本来启动、停止.重启.重载Squid 服务器了.方法是在执行/etc/init .d/ squid脚本时添加相应的start、stop、restart参数或通过systemctl 命令控制Squid服务。
二、构建代理服务器:

2.1传统代理:

使用传统代理的特点在于.客户机的相关程序〈如E浏览器.QQ聊天软件)必须指定代理服务器的地址.端口等基本信息。下面通过一个简单的应用案例来学习传统代理的配置和使用方法。

Squid服务器的配置
配置 Squid实现传统代理服务时.需要注意添加http_access allow all访问策略.以便允许任意客户机使用代理服务。除此以外,为了限制下载的文件大小,还需要设置reply._body..max_size项,其他各种参数均可保持默认。

修改squid .conf 配置文件.

[root@localhost ~]# vim /etc/squid.conf
reply_body_max_size 10 MB
http_access allow all


 重载squid服务

修改squid .conf配置文件以后.需要重新启动服务方可生效。执行“systemctl restart squid”或"squid -k reconfigure”,都可以重新加载服务配置。

[root@localhost ~]# systemctl restart squid

客户机配置

 

2.2透明代理: 

透明代理提供的服务功能与传统代理是--致的,但是其“透明”的实现依赖于默认路由和防火墙的重定向策略,因此更适用于为局域网主机服务.而不适合为internet 中的客户机提供服务。下面也通过一个简单的应用案例来学习透明代理的配置和使用。
1.配置Squid支持透明代理
Squid服务的默认配置并不支持透明代理.因此需要调整相关设置。对于2.6以上版本的Squid服务.只要在htp_port配置行加上一个“transparent”(透明)选项.就可以支持透明代理了。

2.设置firewalld的重定向策略
透明代理中的Squid服务实际上是构建在Linux网关主机上的,因此只需正确设置防火墙策略.就可以将局域网主机访问Internet的数据包转交给Squid进行处理。这需要用到firewalld的P伪装与端口转发策略,其作用是实现本机端口的重定向.将访问网站协议HTTP、HTTPS的外发数据包转交给本机的Squid 服务(3128端口).
防火墙做端口转发操作,将访问本机80、443端口的请求转发到3128端口。
 


 


 


 


 


 


 

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

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

相关文章

web学习笔记(十一)

目录 1.数据类型 1.1数据类型分类 (1)简单(基本)数据类型 (2)复杂(特殊)数据类型 1.2判断数据类型的方法 (1)常规判断方法: (2…

x-cmd pkg | trdsql - 能对 CSV、LTSV、JSON 和 TBLN 执行 SQL 查询的工具

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trdsql 是一个使用 sql 作为 DSL 的强大工具: 采用 SQL 对 CSV、LTSV、JSON 和 TBLN 文件执行查询与 MySQL,Postgresql,Sqlite 的 Driver 协同,可以实现对应数据库的表与文件的 JO…

Kafka_02_Producer详解

Kafka_02_Producer详解 ProducerProducerRecordSend&Close实现原理ProducerInterceptorSerializerPartitioner 事务 Producer Producer(生产者): 生产并发送消息到Broker(推送) Producer是多线程安全的(建议通过池化以提高性能)Producer实例后可发送多条消息(可对应多个P…

2024--Django平台开发-Django知识点(四)

1.知识回顾 创建项目&#xff1a;新项目、别人项目、新版版、老版本 项目目录&#xff08;v1.0版本&#xff09; 路由系统 常见路由编写加粗样式 /index/ 函数 /index/<str:v1> 函数 re_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy), re_path(ryy/(?…

科研上新 | 第4期:语言-音乐对比预训练;查找表实现的神经网络推理;大模型时代重新定义搜索框架

编者按&#xff1a;欢迎阅读“科研上新”栏目&#xff01;“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期内容速览 …

什么是ajax,为什么使用ajax!

前言&#xff1a; 要学习一门新的、技术之前&#xff0c;首先我们要了解一下他是什么&#xff0c;为什么使用&#xff0c;有什么好处&#xff0c;该怎么理解。现在就从下文开始了解吧 什么是ajax: Ajax即“Asynchronous Javascript And XML”(异步JavaScript 和XML)&#xff0…

监控API的指标

监控服务器已经是常态了&#xff0c;但是监控API的表现是啥意思呢&#xff1f;还有监控指标&#xff1f;今天就来看看如何监控API。 正如监控应用程序以确保高质量性能一样&#xff0c;也必须监控API。 API是应用程序相互通信的管道。更具体地说&#xff0c;API提供了一种方法…

spring事务默认传播机制REQUIRED的试验(手动开启事务代码+feign远程调用)

transactional注解&#xff0c;默认啥都不指定的时候&#xff0c;我们使用的就是PROPAGATION_REQUIRED这种方式。 PROPAGATION_REQUIRED:业务方法需要在一个事务中运行&#xff0c;如果方法运行时&#xff0c;已处在一个事务中&#xff0c;那么就加入该事务&#xff0c;否则自…

C++20新特性解析:深入探讨协程库的实现原理与应用

C20新特性解析&#xff1a;深入探讨协程库的实现原理与应用 一、C20的协程库简介二、C20协程基础知识2.1、协程的基本概念和使用方法2.2、C20中的协程支持2.3、协程与传统线程的对比 三、C20协程库的实现原理四、C20协程库的应用实例总结 一、C20的协程库简介 C20引入了对协程…

特种印制电路技术

1特种印制电路技术现状、分类及特点 2006年&#xff0c;信息产业部(现工信部)电子信息产品管理司将高档PCB产品类型概括为HDI板、多层FPC、刚挠结合板、IC载板、通信背板、特种板材印制板、印制板新品种等种类。但直至目前&#xff0c;在印制电路设计与制造领域还没有形成特种…

软件测试|深入理解SQL RIGHT JOIN:语法、用法及示例解析

引言 在SQL中&#xff0c;JOIN是一种重要的操作&#xff0c;用于将两个或多个表中的数据关联在一起。SQL提供了多种JOIN类型&#xff0c;其中之一是RIGHT JOIN。RIGHT JOIN用于从右表中选择所有记录&#xff0c;并将其与左表中匹配的记录组合在一起。本文将深入探讨SQL RIGHT …

Python Selenium常见的报错以及措施

Python Selenium的常见报错主要包括以下几种&#xff1a; 1. NoSuchElementException: 当Selenium无法在DOM中找到元素时&#xff0c;会抛出此异常。这通常是因为元素不存在或者页面还未完全加载。 解决方法&#xff1a; 显式等待 隐式等待 越快越慢&#xff0c;越慢越快&#…

C#,冒泡排序算法(Bubble Sort)的源代码与数据可视化

排序算法是编程的基础。 常见的四种排序算法是&#xff1a;简单选择排序、冒泡排序、插入排序和快速排序。其中的快速排序的优势明显&#xff0c;一般使用递归方式实现&#xff0c;但遇到数据量大的情况则无法适用。实际工程中一般使用“非递归”方式实现。本文搜集发布四种算法…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第二天-Linux开发板外设练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

并发(6)

目录 31.JUC框架包含几个部分&#xff1f; 32.Lock框架和Tools包含哪些核心的类&#xff1f; 33.JUC原子类有哪些核心的类&#xff1f; 34.JUC线程池有哪些核心的类&#xff1f; 35.线程安全的实现方法有哪些&#xff1f; 31.JUC框架包含几个部分&#xff1f; 主要包含&am…

SpringCloud-高级篇(十三)

前面的主从集群可以应对Redis高并发读的问题&#xff0c;Redis主从之间可以做同步&#xff0c;为了提高主从同步时的性能&#xff0c;单节点Redis的内存不要设置太高&#xff0c;如果内存占用过多&#xff0c;做RDB的持久化&#xff0c;或者做全量同步的时候&#xff0c;导致大…

LDD学习笔记 -- Linux错误码

LDD学习笔记 -- Linux错误码 EACCES(Permission Denied) 13EEXIST(File Exits) 17EINVAL(Invalid Argument) 22ENOENT(No Such File or Directory)ENOMEM(Out of Memory)EIO(Input/Output Error) 5ENOSPC(No space Left on Device)ENOTTY(Not a Typewrite)EPIPE(Broken Pipe)EI…

使用邮箱发送验证码前端完成登录

前言 在前一篇使用C#发送邮箱验证码已经完成使用.net core web api写了完成往登录邮箱发送验证码的接口。现在就用前端调用接口模拟登录功能。 接口 public class ApiResp{public bool Success { get; set; }public int Code { get; set; }public int count { get; set; }pu…

元数据管理平台对比预研 Atlas VS Datahub VS Openmetadata

大家好&#xff0c;我是独孤风。元数据管理平台层出不穷&#xff0c;但目前主流的还是Atlas、Datahub、Openmetadata三家&#xff0c;那么我们该如何选择呢&#xff1f; 本文就带大家对比一下,这三个平台优势劣势。要了解元数据管理平台&#xff0c;先要从架构说起。 正文共&am…

【北邮国院大四上】Business Technology Strategy 企业技术战略

北邮国院电商大四在读&#xff0c;本笔记仅为PPT内容的整理与翻译&#xff0c;并不代表本课程的考纲及重点&#xff0c;仅为本人复习时方便阅读与思考之作。 写在前面 大家好&#xff0c;欢迎来到大学期间的最后一门课程&#xff0c;本门课程是中方课&#xff0c;所以很庆幸的…