陈奇网络工作室

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.gz

cd squid-3.5.27/

./configure

生成安装

squid配置文件

# aclallsrc0.0.0/0.0.0and http _ accessallowall选项定义访问控制列表。 详情请参照和Squid软件

#要携带的文档。 在此访问控制列表中,代理加快了web服务器的速度,因此允许对代理服务的所有访问。

acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问

acl manager proto http #manager url协议是http

acllocalhostsrc 127.0.0.1/255.255.255.255 #允午本地IP

acl to_localhost dst 127.0.0.1 #允午目标地址为本地IP

acl Safe_ports port 80 #允许安全更新的端口是80个

acl CONNECT method CONNECT #请求方法是CONNECT

http_access allow all #允许所有人使用此代理。 因为这里代理会加快web服务器的速度

http_reply_access allow all #允许所有客户端使用此代理

acl OverConnLimit maxconn 16 #允许每个IP最多16个连接,***

http_access deny OverConnLimit

icp_access deny all #禁止从邻居服务器缓冲区发送或接收ICP请求。

miss_access allow all #允许您直接更新请求

ident_lookup_access deny all #禁止lookup检查dns

http_port 8080 transparent #指定浏览器接收客户请求的Squid的端口号。

hierarchy_stoplist cgi-bin? #用于强制特定对象不被缓存,主要用于安全目的。

AclQueryURLpath_regexCGI-bin\\\?

cache deny查询

cache_mem 1 GB #是一个优化选项,增加此内存值有利于缓存。 应该注意的是:

#通常,如果系统有内存,请将此值设置为( n/) 3M。 现在是3G,所以这里是1G

fqdncache_size 1024 #FQDN高速缓存大小

maximum _ object _ size _ in _ memory 2mb #允许将最大的文件加载到内存中

memory _ replacement _ policyheaplfuda #动态使用最小的并将其移出内存缓存

cache _ replacement _ policyheaplfuda #动态使用最小的从硬盘cache移动

cache _ dirufs/home/cache 500032512 #高速缓存目录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 #最多可以使用95 %的swap

ipcache_size 2048 # IP地址缓存大小2M

ipcache_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 squid

cache_store_lognone#store日志禁止

emulate_httpd_log on #创建一个访问记录,使Squid与Web服务器的格式相似。 如果您希望的话

#Web访问日志分析程序需要设置此参数。

更新refresh _ pattern.020 c 20 override-expire override-lastmod reload-into-im signore-reload # cache规则

ACL buggy _ server URL _ regex ^ http://. http://#只允许http请求

broken_posts allow buggy_server

aclapacherep _ header server ^ Apache #允许Apache编码

broken _ vary _ encodingallowapache

request_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 squid

icp_port 0 #指定Squid用于从相邻服务器缓冲区发送和接收ICP请求的端口号。

#此处设置0是因为将Squid设置为内部Web服务的加速器

#所以不需要使用旁边服务器的缓冲区。 0无效

# cache_peer设置允许更新缓存的主机。 因为是本机,所以127.0.0.1

cache _ peer 127.0.0.1 parent 80 no-querydefaultmulticast-responder no-netd B- exchange

cache_peer_domain 127.0.0.1

hostname_aliases 127.0.0.1

error _ 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 tianya

http_access deny tianya

deny_info tianya

白杜阻止蜘蛛

aclbaidureq _ header user-agent baiduspider

http_access deny baidu

#限制同一IP客户端的最大连接数

acl OverConnLimit maxconn 128

http_access deny OverConnLimit

为了防止被用作HTTP代理,设定允许访问的IP地址

acl myip dst 222.18.63.37

http_access deny! myip

#允许本地管理

acl Manager proto cache_object

acllocalhostsrc 127.0.0.1222.18.63.37

http _ accessallowmanagerlocalhost

cachemgr_passwd 53034338 all

http_access deny Manager

#仅允许80端口代理

acl all src 0.0.0.0/0.0.0.0

acl Safe_ports port 80 # http

http_access deny! Safe_ports

http_access allow all

#Squid信息设置

visible _ hostname happy.swjtu.edu.cn

cache_mgr ooopic2008@qq.com

#基本设定

cache_effective_user squid

cache_effective_group squid

tcp_recv_bufsize 65535 bytes

#2.6的反向代理加速配置

cache _ peer 127.0.0.1 parent 80 no-queryoriginserver

#错误文档

error _ directory/usr/local/squid/share/errors/simplify _ Chinese

#单独使用,不使用该功能

icp_port 0

hierarchy_stoplist cgi-bin?

AclQueryURLpath_regexCGI-bin\\\? PHP.CGI.avi.wmv.RM.ram.mpg.mpeg.zip.exe

cache deny查询

aclapacherep _ header server ^ Apache

broken _ vary _ encodingallowapache

refresh_pattern^FTP:144020080

Refresh_Pattern^Gopher:144040

refresh_pattern . 0 20% 4320

cache_store_log none

PID _ filename/usr/local/squid/var/logs/squid.PID

emulate_httpd_log on

我的构成如下。

请最关注区域访问

squdi启动

#squid通用命令

初始化用squid.conf配置的cache目录

squid -z

如果收到错误消息,可以验证cache目录的权限并更改目录的权限

chown -R squid:squid /cache目录

2调试squid.conf,验证squid.conf的语法和配置

squid -k parse

如果squid.conf中存在语法或配置错误,此处将返回提示。 如果不返回,请尝试启动squid

3前台启动squid,输出启动流程

/usr/local/squid/sbin/squid-n-D1

如果有关于ready to server reques的信息,表示squid启动成功

然后停止ctrl c、squid,并启动其在后台执行

启动squid并在后台运行

squid -s

您可以使用ps -ax | grep squid验证squid进程是否存在

停止squid

squid -k shutdown

6重新启动更改后的squid.conf

squid-k reconfigure-f/XXX/squid.conf

squid配置更改后,可以使用此命令重新加载squid配置

7在系统启动项目中添加squid

vim /etc/rc.local

/usr/local/squid/sbin/squid -s

更改缓存目录的权限

chown -R squid.squid /cache目录

高速缓存目录根据自己的构成进行变更,squid用户和组为squid、squid

更改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

面临的问题

错误:无前台-专业版配置。

解决办法: https://www.cn blogs.com/alone sword/p/4090827.html

warning:cannotwritelogfile:/usr/local/squid/var/logs/cache.log

/usr/local/squid/var/logs/cache.log:permission denied

messageswillbesentto\\\& quot; stderr\\\& quot;

解决办法: chmod-r777/usr/local/squid/var/logs

推荐参考文章:

squid权威中文指南3359 www.phpfans.net/manu/squid /

squid配置指南: http://www.phpfans.net/manu/squid

配置要编译和安装squid3.0的透明代理http://blog.Sina.com.cn/s/blog _ 517 e 2e 1b 0100 a P1 v.html

quid介绍及其简要配置: https://blog.51cto.com/Linux me/372960

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3