热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Squid-Linux下的使用详解

文章标题:Squid-Linux下的使用详解。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  做为眼下最流行的操作系统,Linux已经越来越受到世人的关注。虽然目前Linux的软件还不是很丰富,替代WINDOWS作为普通PC机操作系统还为时过早,但是在服务器领域,Linux的稳定性,可操作性决不输于任何操作系统,并且也有优秀的软件支持。Squid就是其中之一。Linux加Squid的组合做为代理服务器,性能远远超过WINNT加MSPROXY2.0(个人观点),为几百人的小型局域网代理绰绰有余。下面,我就详细的介绍Squid的安装及使用技巧,希望大家能够喜欢上它。
  
  1.Squid简介
  Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议,暂不能代理POP, NNTP等协议。不过,已经有人开始修改Squid,相信不久的将来,Squid能够代理这些协议。
  
  Squid能够缓存任何数据吗?不是的。象缓存信用卡帐号、可以远方执行的scripts、经常变换的主页等是不合适的也是不安全的。Squid可以自动的进行处理,你也可以根据自己的需要设置Squid,使之过滤掉你不想要的东西。
  
  Squid可以工作在很多的操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。
  
  Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,处理器要求不高,400MH以上既可。
  
  2. Squid的编译和运行
  其实现在的Linux发行套件中基本都有已经编译好的Squid,你所作的就是安装它既可。如果你手头没有现成的编译好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下载一份,自己编译。
  
  Squid的编译是非常简单的,因为它基本上是自己配置自己。最容易出现的问题是你的系统上没有合适的编译器,这可以通过安装相应的编译器解决。如果出现其他问题,你可以问一下有经验的用户或到相应的邮件列表寻找帮助。
  
  编译Squid之前,最好建一个专门运行Squid的用户和组。我就在自己的服务器上建了一个名为squid的用户和组,用户目录设为/usr/local/squid。然后su为用户squid并从squid.nlanr.net下载Squid的源文件到目录 /usr/local/squid/src中,用如下命令进行解压:
  
  %tar xzf squid-2.0.RELEASE-src.tar.gz
  
  %cd /usr/local/squid/src/ squid-*.*.RELEASE /
  
  %./configure
  
  %make
  
  %make install
  
  第一个命令在目录/usr/local/squid/src中产生一个新的子目录/squid-*.*.RELEASE/。命令./configure会自动查询你的系统配置情况以及你系统中使用的头文件。不加参数的./configure会把Squid安装在目录/usr/local/squid中,如果你想使用其他目录,用如下命令./configure --prefix=/some/other/directory,这会把Squid安装在目录/some/other/directory中。
  make命令编译Squid,make install命令安装Squid。
  
  不出意外的话,目录/usr/local/squid中会出现如下目录:
  
  /bin
  
  /cache
  
  /etc
  
  /logs/
  
  /src (自己创建的)
  
  目录/bin中含有Squid可执行程序,包括Squid本身,ftpget等。
  
  目录/cache包含Squid缓存的数据,其中包含象/00/ /01/ /02/ 以及/03/这样的目录,这些目录中还有子目录,因为目录多了比在一个目录成千上万的文件中寻找一个文件更容易,速度更快。
  
  目录/etc中包含Squid的唯一的配置文件squid.conf。
  
  目录/logs中包含Squid的日志。
  
  3. squid.conf文件的配置
  在安装Squid后,在目录/usr/local/squid /etc中会自动产生一个样本squid.conf文件,文件中对每一个选项都有详细的说明,用户可以通过修改该文件以满足不同的需要。
  
  总的来说,有如下几个重要选项:
  
  •http_port:设定Squid监听的端口,你最好设一个比较好记的端口号,以便在进行客户机配置时容易记住。我的机器上端口号设的是8080。缺省为3128。
  
  •cache_mem:设定Squid占用的物理内存,根据我的经验,cache_mem的大小不应超过你的服务器物理内存的三分之一,否则将会影响机器的总体性能。
  
  •maximum_object_size:设定Squid可以接收的最大对象的大小。Squid缺省值为4M,我自己入认为太大,你可以根据自己的需要进行设定。
  
  •cache_dir:设定缓存的位置、大小。一般看起来形式如下
  “cache_dir /usr/local/squid/cache 100 16 256”。 /usr/local/squid/cache代表缓存的位置;100代表缓存最大为100M;16和256代表一级和二级目录数。
  
  •cache_effective_user:设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没有用户nobody,最好建一个或以非root用户运行Squid。
  
  下面我给出一个最简单的squid.conf文件:
  
  #squid.conf - a very basic config file for squid
  
  #Turn logging to it's lowest level
  
  debug_options ALL,1
  
  #defines a group (or Access Control List) that includes all IP addresses
  
  acl all src 0.0.0.0/0.0.0.0
  
  #define RAM used
  
  cache_mem 32M
  
  #defines the cache size
  
  cache_dir /usr/local/squid/cache 100 16 256
  
  #allow all sites to use connect to us via HTTP
  
  http_access allow all
  
  #allow all sites to use us as a sibling
  
  icp_access allow all
  
  #test the following sites to check that we are connected
  
  dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu
  
  #run as the squid user
  
  cache_effective_user squid squid
  
  这个配置文件允许所有人使用Squid,创建了100M缓存,使用32M内存,在缺省位置"/usr/local/squid/cache"缓存数据,所有缓存数据以组squid和用户squid身份保存,端口为3128。虽然这个配置很不安全,但是它已经能使用了。
  
  4. 运行Squid
  首先以root身份登陆。运行如下命令:
  
  %/usr/local/squid/bin/squid ?z
  
  该命令会产生Squid所有的缓存目录。
  
  如果你想前台执行Squid,接着执行命令:
  
  %/usr/local/squid/bin/squid -NCd1
  
  该命令正式启动Squid。如果一切正常,你会看到一行输出
  
  Ready to serve requests.
  
  如果想后台运行Squid,把它做为一个精灵进程,执行命令:
  
  %/usr/local/squid/bin/squid
  
  观察Squid是否运行使用命令:
  
  % squid -k check
  
  输出会告诉你Squid的当前状态。
推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
author-avatar
向陽阿莫_545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有