在Linux下配置鱿鱼
1。什么是鱿鱼
Squidcache(简称Squid)是自由软件(GNU通用公共许可证)流行的代理服务器和Web缓存服务器。Squid的用途非常广泛,从预缓存服务器作为web服务器缓存相关请求以加速Web服务器,到缓存万维网、DNS等Web搜索以供一群人共享网络资源,到通过过滤流量帮助网络安全,以及在局域网中通过代理上网。Squid主要设计为在Unix系统上运行。
鱿鱼历史悠久,功能完善。除了HTTP之外,对FTP和HTTPS的支持也相当不错,3.0beta版中也支持IPv6。
Squid可以作为代理或者缓存;
Squidcache不仅可以节省宝贵的带宽资源,还可以大大减少服务器I/O。
Squid不仅可以是正向代理,也可以是反向代理。
代理,squid跟在客户端后面,客户端要通过Squid上线;反向代理,squid后面是服务器,服务器返回给用户的数据需要走squid。
代理用于企业的办公环境。员工需要通过squid代理上网,可以节省网络带宽资源。反向代理用于为静态项目(图片、html、流媒体、js、css等)构建缓存服务器。)的,而且是用在网站架构上的。
2。构建squid转发代理
官方网站是http://www.squid-cache.org/.
命令:yuminstall-ysquid
Squid-v视图版本和编译参数(Squid缓存:版本3.1.10)
>/etc/squid/squid.confclear空配置文件;
vim/etc/鱿鱼/squid.conf
添加以下配置:
http_port 3128 acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl SSL_ports port 443 acl Safe_ports port 80 8080 acl Safe_ports port 21 acl Safe_ports port 443 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access allow localhost http_access allow all cache_dir aufs /data/cache 1024 16 256 cache_mem 128 MB hierarchy_stoplist cgi-bin ? coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern \.(jpg|png|gif|mp3|xml) 1440 50% 2880 ignore-reload refresh_pattern . 0 20% 4320 ######################################################### 到此结束解释:
safe_portspot808080#http的端口
FTP的Safe_portspot21#端口
safe_portspot443#https的端口
cache_diraufs/data/cache102416256#cache空1024m大小16个一级目录,256个子目录
Cache_mem128MB#缓存可以使用的内存大小;访问内存中的数据更快;
Mkdir/data/cache#创建缓存目录
Chown-Rsquid:squid/data/cache#更改缓存目录权限
Squid-z#初始化缓存目录,squid3.1新版本可以省略。
/etc/init.d/squidstart#启动squid服务。
Squid-kcheck#可以检测配置文件是否错误;可以缩写成-kche。
Squid-krec#可以重新加载配置,简称reconfig
服务squidrestart#restartsquid服务;频繁重启很慢,可以先杀死所有鱿鱼,再启动服务;
检查配置文件,报告了一个错误:无法确定该计算机的公共主机名。请配置一个或设置“visible_hostname”。没有定义公共主机名,需要配置visible_hostname视觉主机名;(如果squid出现问题,浏览器中会显示squid的主机名)
在配置文件中添加:visible_hostnameyonglinux,不会报错;
[root@yonglinux ~]# squid -k check 2015/05/25 03:09:18| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'. 2015/05/25 03:09:18| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'. squid: ERROR: No running copy在另一个linux上测试:curl-x192.168.22.30:3128www.qq.com
指定代理服务器192.168.22.30的端口3128访问网站,前提是代理服务器可以访问网站;
设置代理服务器的作用一方面是让局域网用户快速访问网站,另一方面可以控制用户访问哪些网站;禁止员工上班时间看视频、购物;
访问图片,测试缓存,缓存时间,X-Cache逐次命中,说明squid缓存工作;第一次是错过;;
[root@localhost ~]# curl -x192.168.22.30:3128 'http://www.51cto.com/p_w_picpaths/home/p_w_picpaths/logo.jpg' -I HTTP/1.0 200 OK Server: Tengine Date: Sun, 24 May 2015 13:42:43 GMT Content-Type: p_w_picpath/jpeg Content-Length: 5309 Last-Modified: Wed, 22 Jan 2014 07:55:12 GMT Expires: Sun, 31 May 2015 13:42:43 GMT Cache-Control: max-age=604800 Load-Balancing: web39 Accept-Ranges: bytes Age: 29661 X-Cache: HIT from yonglinux X-Cache-Lookup: HIT from yonglinux:3128 Via: 1.0 yonglinux (squid/3.1.10) Connection: keep-alive将squid代理服务器设置为仅代理某些域名
设置域名白名单,允许百度搜狐访问,同时拒绝其他;
将vim/etc/squid/squid.conf的以下内容添加到squid配置文件acl中;
aclhttp协议http
ACLgood_domaindstdomain.Baidu.com.Sohu.com
http_access允许httpgood_domain
拒绝http!good_domain
用curl测试白名单,百度和搜狐返回200OK的状态码,如果qq不在白名单,则返回403;
限制某些域名被代理访问
设置域名黑名单,不允许访问jd.com、taobao.com;允许其他人;
vim/etc/squid/squid.conf的以下内容被添加到squid配置文件acl中。
aclhttp协议http
ACLbad_domaindstdomain.Taobao.com.JD.com
http_access拒绝http坏域
用curl测试黑名单,淘宝和京东返回状态码403,51cto返回200OK如果不在黑名单上;
[root@localhost ~]# curl -x192.168.22.30:3128 www.taobao.com -I HTTP/1.0 403 Forbidden Server: squid/3.1.10 Mime-Version: 1.0 Date: Sun, 24 May 2015 21:35:22 GMT Content-Type: text/html Content-Length: 3266 X-Squid-Error: ERR_ACCESS_DENIED 0 Vary: Accept-Language Content-Language: en X-Cache: MISS from yonglinux X-Cache-Lookup: NONE from yonglinux:3128 Via: 1.0 yonglinux (squid/3.1.10) Connection: keep-alive [root@localhost ~]# curl -x192.168.22.30:3128 www.jd.com -I HTTP/1.0 403 Forbidden Server: squid/3.1.10 Mime-Version: 1.0 Date: Sun, 24 May 2015 21:35:32 GMT Content-Type: text/html Content-Length: 3254 X-Squid-Error: ERR_ACCESS_DENIED 0 Vary: Accept-Language Content-Language: en X-Cache: MISS from yonglinux X-Cache-Lookup: NONE from yonglinux:3128 Via: 1.0 yonglinux (squid/3.1.10) Connection: keep-alive [root@localhost ~]# curl -x192.168.22.30:3128 www.51cto.com -I HTTP/1.0 200 OK Server: Tengine Date: Sun, 24 May 2015 13:31:21 GMT Content-Type: text/html Vary: Accept-Encoding Load-Balancing: web39 X-Cache: MISS from yonglinux X-Cache-Lookup: MISS from yonglinux:3128 Via: 1.0 yonglinux (squid/3.1.10) Connection: keep-alive用IE浏览器测试,需要设置代理服务器,菜单栏-工具-上网选项-连接-局域网设置,勾选代理服务器-高级,填写squid代理服务器地址和端口号;
当访问jd.comtaobao.com时,信息是错误的,访问被拒绝。它是由先前定义的可视主机名发送的。访问其他网站很正常;
3。构建squid反向代理
Vim/etc/squid/squid.conf#更改如下
删除以前添加的域名白名单/黑名单配置;
将http_port3128更改为http_port80accelvhostvport
添加以下内容:
cache_peer14.17.42.40parent800originservername=a
cache_peer180.97.33.107parent800originservername=b
缓存对等域www.qq.com
缓存_对等_域bwww.baidu.com
显示器的3128端口改为80端口;IE代理服务器的端口也要改成80;
14.17.42.40是平www.qq.com的ip地址;
如果squid要代理一个web上的所有域名,那么就这样写:cache_peer192.168.10.111800originserver#只需要这一行,cache_peer_domain可以省略;
/etc/init.d/squid重新启动
IE测试反向代理。你可以去Baidu.com和qq.com。其他网站显示:您的请求目前无法转发
使用卷曲测试
[root@localhost ~]# curl -x192.168.22.30:80 www.qq.com -I HTTP/1.0 200 OK Server: squid/3.4.1 Date: Sun, 24 May 2015 14:22:47 GMT Content-Type: text/html; charset=GB2312 Vary: Accept-Encoding Vary: Accept-Encoding Expires: Sun, 24 May 2015 14:23:47 GMT Cache-Control: max-age=60 Vary: Accept-Encoding Vary: Accept-Encoding X-Cache: HIT from shenzhen.qq.com X-Cache: MISS from yonglinux X-Cache-Lookup: MISS from yonglinux:80 Via: 1.0 yonglinux (squid/3.1.10) Connection: keep-alive访问qq.com,从shenzhen.qq.com返回Hit,说明qq.com自己充当了反向代理人;
鱿鱼还有很多配置,会陆续更新;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)