CentOS搭建squid正向代理

squid介绍

官网地址:http://www.squid-cache.org/


Squid cache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid 有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid 主要设计用于在 Unix 一类系统运行。

Squid 的发展历史相当悠久,功能也相当完善。除了 HTTP 外,对于 FTP 与 HTTPS 的支援也相当好,在 3.0 测试版中也支援了 IPv6。

Squid主要提供缓存加速、应用层过滤控制的功能。

代理的工作机制

(1)代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。

(2)将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

代理服务器的概念及其作用

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。

缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。

主要作用

(1)资源获取:代替客户端实现从原始服务器的资源获取

(2)加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用

(3)缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取

(4)隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息

squid的三种代理类型

squid软件主要有三种代理类型:

  • 正向代理:代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)。
  • 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理。
  • 反向代理:如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

正向代理分析图:
image

反向代理分析图:
image

squid安装和配置文件说明

安装软件

# yum镜像仓库里有squid的软件包
yum -y install squid

# squid配置初始化
cat >> /etc/squid/squid.conf<< EOF
cache_mem 64 MB
maximum_object_size 4 MB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
EOF

# squid初始化
squid -z

# 启动squid并设置为开机启动
service squid start && systemctl enable squid

# 检查squid是否正常运行
netstat -ntlp | grep squid

# 如果防火墙开启的话,放开3128端口
firewall-cmd --zone=public --add-service=squid --permanent

软件的文件列表

/etc/squid/squid.conf           # 配置文件
/etc/rc.d/init.d/squid          # 启动脚本
/usr/sbin/squid                 # 二进制命令
/usr/share/doc/squid-3.1.10     # 手册
/var/log/squid                  # 日志目录
/var/spool/squid                # 缓存目录

配置文件说明

# cat /etc/squid/squid.conf

#####	设置监听的IP与端口号
http_port 3128

#####	额外提供给squid使用的内存大小,默认256 MB
cache_mem   64 MB   

#####	设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
maximum_object_size 4 MB   

#####	设置squid磁盘缓存最小文件
minimum_object_size 0 KB 

#####	设置squid内存缓存最大文件,超过4M的文件不保存到内存
maximum_object_size_in_memory 4096 KB  

#####	定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量,此处的100 一定要大于 cache_mem 否则报错。
cache_dir ufs /var/spool/squid 100 16 256  

#####	log文件日志格式
logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh

#####	log文件存放路径和日志格式
access_log /var/log/squid/access.log combined

#####	设置缓存日志
cache_log /var/log/squid/cache.log

#####	log轮转60天
logfile_rotate 60

#####	cache目录使用量大于95%时,开始清理旧的cache
cache_swap_high 95

#####	cache目录清理到90%时停止
cache_swap_low 90

#####	定义本地网段
acl localnet src 192.168.1.0/24

#####	允许本地网段使用
http_access allow localnet

#####	拒绝所有
http_access deny all

#####	主机名
visible_hostname xxx.xxxx.xxxx

#####	管理员邮箱
cache_mgr 123456@qq.com

正向代理客户端配置

Windows客户端配置代理:

Internet 选项 > 连接 > 局域网设置 ”,在代理服务器区域,按照以下格式设置:
image

Linux客户端:

先创建并修改/etc/profile.d/proxy.sh文件

# 创建proxy.sh文件
touch /etc/profile.d/proxy.sh

编辑proxy.sh文件

# 进入profile.d目录
cd /etc/profile.d/
# 编辑proxy.sh文件
vim proxy.sh

添加下列内容

# squid正向代理只支持http、https、ftp协议,把下面的proxy_server_ip更换为自己搭建的squid服务器IP
export https_proxy=http://proxy_server_ip:3128
export http_proxy=http://proxy_server_ip:3128
export ftp_proxy=http://proxy_server_ip:3128

执行source /etc/profile使其生效

# 执行source /etc/profile
source /etc/profile

配置完成

原文链接:https://www.cnblogs.com/timo521/p/17355085.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS搭建squid正向代理 - Python技术站

(0)
上一篇 2023年4月27日
下一篇 2023年4月27日

相关文章

  • 通过yum-cron对linux进行安全更新

    配置yum-cron工具。 安装 [root@localhost ~]# yum -y install yum-cron 配置 yum-cron有两个配置文件:/etc/yum/yum-cron.conf 和 /etc/yum/yum-cron-hourly.conf。这两个配置文件内容差不多,用于配置每天需要执行的内容和每小时需要执行的内容。 在配置文件中…

    Linux 2023年4月11日
    00
  • 【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录

    FTP服务-vsftp协议实现 我们常用的是FTP协议,主要是通过VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。 SFTP服务-ssh协议实现 由于vsftp采用明文传输,用户名密码可通过抓包得到,为了安全性,需使用sftp,锁定目录且不允许sf…

    Linux 2023年4月11日
    00
  • Linux定时任务 结合PHP实现实时监控

    首先说说cron,它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。 所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。 要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 cro…

    Linux 2023年4月11日
    00
  • 16、文件操作系统入门基本概念 Linux内核笔记–深入理解文件描述符

    1、文件管理系统   在大多数应用中,文件是一个核心成分,处理实时应用和一些特殊的应用外,应用程序的输入都是通过文件的形式来完成的,实际上,所有应用程序的输出都保存在文件中,这便于信息的长期存储,也便于用户将来通过应用程序访问信息。   数据或者文件归根结底是存储于物理内存空间上的,操作系统可以通过文件系统方便的管理磁盘上的文件,Linux的文件系统模型如下…

    Linux 2023年4月11日
    00
  • linux下把 python 程序运行的输出结果记录到 log 文件中

    Linux中将 python 程序运行结果记录到文件中的方法 https://www.cnblogs.com/shineriver/p/10922970.html 仅转向不显示(1)ls > test.txt 把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留(2)ls >> test.txt 是把输出附向到文件的后面…

    Linux 2023年4月16日
    00
  • Linux线程的创建方式是什么

    这篇文章主要介绍“Linux线程的创建方式是什么”,在日常操作中,相信很多人在Linux线程的创建方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux线程的创建方式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! 线程的概念与实现方式 线程是进程内部的一条执行序列或执行路径,一个进程可以包含多条线程。 从…

    2023年4月8日
    00
  • 在Linux上查看活跃线程数与连接数

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一旦不够用了,就会导致程序阻塞、性能低下,所以有时我们需要看看它们的使用情况,以判断这里是否是瓶颈。 查看活跃线程数 在Linux上,通过top -H -p 1命…

    Linux 2023年4月10日
    00
  • Linux HugePage 特性

    HugePage,就是指的大页内存管理方式。与传统的4kb的普通页管理方式相比,HugePage为管理大内存(8GB以上)更为高效。本文描述了什么是HugePage,以及HugePage的一些特性。   1、Hugepage的引入    操作系统对于数据的存取直接从物理内存要比从磁盘读写数据要快的多,但是物理内存是有限的,这样就引出了物理内存与虚拟内存的概念…

    Linux 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部