squid服务初步窥探
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,squid服务安装以及简单使用squid是什么Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非
千家信息网最后更新 2025年02月05日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安全错误
数据库的锁怎样保障安全
炉石传说有涉外服务器吗
长沙网络技术学校有哪些
服务器安全配置总结
杭州秘安网络技术有限公司
邦百汇系统软件开发
数据库名称是自己设置的吗
网络技术和手段滞后
墨韵服务器
樱漫网络技术怎么样
微信数据库损坏是什么问题
吉林网络技术服务工程
服务器硬件能自动修复吗
互联网是科技进步一等奖
广州张无忌网络技术有限公司
商品列表jsp数据库代码
腾讯怎么确保服务器的安全
终端软件开发入门
ESC软件开发协议
splunk日志服务器
广州力擎网络技术有限公司
2008数据库还原操作
网络安全测评项目销售职业
哦c数据库的拓展名是
光盘数据库属于文献吗
dnf 装备数据库
软件开发工作室需要什么证件
数据库系统中数据段
网络安全监督检查自查表填写
数据库管理员每天做什么
软件开发室主任