squid服务初步窥探
发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,squid服务安装以及简单使用squid是什么Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非
千家信息网最后更新 2024年10月24日squid服务初步窥探
squid服务安装以及简单使用
squid是什么
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
squid源码包安装
下载地址 http://www.squid-cache.org/Versions/
tar zxvf squid-3.5.27.tar.gzcd squid-3.5.27/./configuremake && make install
squid 配置文件
#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软件#携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问acl manager proto http #manager url协议为httpacl localhost src 127.0.0.1/255.255.255.255 #允午本机IPacl to_localhost dst 127.0.0.1 #允午目的地址为本机IPacl Safe_ports port 80 # 允许安全更新的端口为80acl CONNECT method CONNECT #请求方法以CONNECThttp_access allow all #允许所有人使用该代理.因为这里是代理加速web服务器http_reply_access allow all #允许所有客户端使用该代理acl OverConnLimit maxconn 16 #限制每个IP最大允许16个连接,防止***http_access deny OverConnLimiticp_access deny all #禁止从邻居服务器缓冲内发送和接收ICP请求.miss_access allow all #允许直接更新请求ident_lookup_access deny all #禁止lookup检查DNShttp_port 8080 transparent #指定Squid监听浏览器客户请求的端口号。hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的。acl QUERY urlpath_regex cgi-bin \?cache deny QUERYcache_mem 1 GB #这是一个优化选项,增加该内存值有利于缓存。应该注意的是: #一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1Gfqdncache_size 1024 #FQDN 高速缓存大小maximum_object_size_in_memory 2 MB #允许最大的文件载入内存memory_replacement_policy heap LFUDA #动态使用最小的,移出内存cachecache_replacement_policy heap LFUDA #动态使用最小的,移出硬盘cachecache_dir ufs /home/cache 5000 32 512 #高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,#32个一级目录,512个二级目录max_open_disk_fds 0 #允许最大打开文件数量,0 无限制minimum_object_size 1 KB #允午最小文件请求体大小maximum_object_size 20 MB #允午最大文件请求体大小cache_swap_low 90 #最小允许使用swap 90%cache_swap_high 95 #最多允许使用swap 95%ipcache_size 2048 # IP 地址高速缓存大小 2Mipcache_low 90 #最小允许ipcache使用swap 90%ipcache_high 95 #最大允许ipcache使用swap 90%access_log /var/log/squid/access.log squid #定义日志存放记录cache_log /var/log/squid/cache.log squidcache_store_log none #禁止store日志emulate_httpd_log on #将使Squid仿照Web服务器的格式创建访问记录。如果希望使用 #Web访问记录分析程序,就需要设置这个参数。refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload #更新cache规则acl buggy_server url_regex ^http://.... http:// #只允许http的请求broken_posts allow buggy_serveracl apache rep_header Server ^Apache #允许apache的编码broken_vary_encoding allow apacherequest_entities off #禁止非http的标分准请求,防止***header_access header allow all #允许所有的http报头relaxed_header_parser on #不严格分析http报头.client_lifetime 120 minute #最大客户连接时间 120分钟cache_mgr sky@test.com #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。cache_effective_user squid #这里以用户squid的身份Squid服务器cache_effective_group squidicp_port 0 #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。 #这里设置为0是因为这里配置Squid为内部Web服务器的加速器, #所以不需要使用邻居服务器的缓冲。0是禁用# cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchangecache_peer_domain 127.0.0.1 hostname_aliases 127.0.0.1error_directory /usr/share/squid/errors/Simplify_Chinese #定义错误路径always_direct allow all # cache丢失或不存在是允许所有请求直接转发到原始服务器ignore_unknown_nameservers on #开反DNS查询,当域名地址不相同时候,禁止访问coredump_dir /var/log/squid #定义dump的目录max_filedesc 2048 #最大打开的文件描述half_closed_clients off #使Squid在当read不再返回数据时立即关闭客户端的连接。 #有时read不再返回数据是由于某些客户关闭TCP的发送数据 #而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。buffered_logs on #若打开选项"buffered_logs"可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化特性。#防止天涯盗链,转嫁给百度acl tianya referer_regex -i tianyahttp_access deny tianyadeny_info tianya#阻止baidu蜘蛛acl baidu req_header User-Agent Baiduspiderhttp_access deny baidu#限制同一IP客户端的最大连接数acl OverConnLimit maxconn 128http_access deny OverConnLimit#防止被人利用为HTTP代理,设置允许访问的IP地址acl myip dst 222.18.63.37http_access deny !myip#允许本地管理acl Manager proto cache_objectacl Localhost src 127.0.0.1 222.18.63.37http_access allow Manager Localhostcachemgr_passwd 53034338 allhttp_access deny Manager#仅仅允许80端口的代理acl all src 0.0.0.0/0.0.0.0acl Safe_ports port 80 # httphttp_access deny !Safe_portshttp_access allow all#Squid信息设置visible_hostname happy.swjtu.edu.cncache_mgr ooopic2008@qq.com#基本设置cache_effective_user squidcache_effective_group squidtcp_recv_bufsize 65535 bytes#2.6的反向代理加速配置cache_peer 127.0.0.1 parent 80 0 no-query originserver#错误文档error_directory /usr/local/squid/share/errors/Simplify_Chinese#单台使用,不使用该功能icp_port 0hierarchy_stoplist cgi-bin ?acl QUERY urlpath_regex cgi-bin \? .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .execache deny QUERYacl apache rep_header Server ^Apachebroken_vary_encoding allow apacherefresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern . 0 20% 4320cache_store_log nonepid_filename /usr/local/squid/var/logs/squid.pidemulate_httpd_log on
我的配置如下:
最主要的关注一下地区访问
squdi启动
#squid常用命令1 初始化在squid.conf里配置的cache目录 squid -z 如果有错误提示,请检查cache目录的权限,可以更改目录权限 chown -R squid:squid /cache目录2 对squid.conf排错,即验证squid.conf的语法和配置 squid -k parse 如果在squid.conf中有语法或配置错误,这里会返回提示,若无返回,尝试启动squid3 前台启动squid,并输出启动过程 /usr/local/squid/sbin/squid -N -d1 如果有ready to server reques相关信息,说明squid启动成功 然后ctrl+c ,停止squid,并以后台运行的方式启动它4 启动squid在后台运行 squid -s 可以使用ps -ax | grep squid 来查看squid进程是否存在5 停止squid squid -k shutdown6 重新引导修改过的squid.conf squid -k reconfigure -f /XXX/squid.conf 当squid进行配置更改后,可以使用该命令进行squid配置重载7 把squid添加到系统启动项 vim /etc/rc.local /usr/local/squid/sbin/squid -s 修改cache缓存目录的权限 chown -R squid.squid /cache目录 cache缓存目录根据自己的配置更改,squid用户和组是squid,squid8 修改squid日志目录的权限 chown -R squid.squid 定义的日志文件所在目录 这一步并不是适合每一个使用squid的用户,意为让squid有权限在该目录里进行写操作9 查看你的日志文档 more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT 该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。 more /usr/local/squid/var/logs/access.log | grep TCP_HIT 该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。 more /usr/local/squid/var/logs/access.log | grep TCP_MISS 该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是从原始服务器获取并返回给访问用户。
运行服务
# /usr/local/squid/sbin/squid -z 使配置文件生效(修改配置文件后需要执行)# /usr/local/squid/sbin/squid -k parse以后台进程的形式启动squid# /usr/local/squid/sbin/squid -s
遇到的问题
- ERROR: No forward-proxy ports configured.
解决方案: https://www.cnblogs.com/AloneSword/p/4090827.html - WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
解决方案: chmod -R 777 /usr/local/squid/var/logs
推荐参考文章:
- squid权威中文指南https://www.phpfans.net/manu/Squid/
- squid配置指南: http://www.phpfans.net/manu/Squid
- squid3.0做编译安装配置透明代理http://blog.sina.com.cn/s/blog_517e2e1b0100ap1v.html
- quid介绍及其简单配置: https://blog.51cto.com/linuxme/372960
目录
配置
服务
文件
缓存
服务器
代理
最大
客户
地址
日志
用户
缓冲
运行
最小
内存
权限
信息
大小
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
在哪里下载sql数据库
中纺达软件开发有限公司
网络安全与文明同行手抄报
网络安全宣传主题团课观后感
评论互联网科技
如何设置header服务器大小
美国学生网络安全
远程附件和服务器储存哪个好
基因本地数据库
战地1被服务器拉黑怎么办
c 高并发 服务器
上海iptv服务器地址
崩坏3qq登录服务器怎么样
广州运维管理软件开发定制
注销网易账号数据库
网络技术员招聘面试问题
万方三个数据库的情况
睿思数据库
保障服务器运行安全
数据库系统实战项目
网络安全监测可行性
桂阳学计算机软件开发月薪
网络安全需要全民共筑
英雄联盟总是失去与服务器的连接
数据库什么情况下使用设计视图
网络安全法有修改吗
手机软件开发的前景
如何申请软件开发企业
软件开发企业增值税抵扣
中宣部网络技术中心副主任