squid 的一些常用操作,以及反向代理测试

​​​​​​​什么squid

        Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

        Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。

        Squid能够增强访问控制,提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制等

一,我用squid基本上用来做反向代理,来缓存图片,html这类的静态程序

http://localhost:9000/test/222.jpg,图片的确切位置是http://localhost/test/222.jpg,我是用本机的9000端口来代理本机的80端口,不光端口可以改,域名都可以改。

关于配置文件请看http://blog.51yip.com/server/638.html,这样代理后,我们怎么知道squid是不是真缓存了呢?我们就需要查看squid的日志了。

二,squid的一些常用操作

1,查看有多少缓存了,以什么方式缓存的。

cat access.log |grep TCP_MISS         显示的方式很多,依个人喜好而定

squid缓存日志

从上图中可以看出,缓存多少次,以何种方式缓存的,MISS了多少次等。例举几个常见的。

a),TCP_HIT

Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

b),TCP_MISS

Squid没有请求资源的cache拷贝。

c),TCP_REFERSH_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

d),TCP_REF_FAIL_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。

e),TCP_REFRESH_MISS

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

f),TCP_IMS_HIT

客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

g),TCP_MEM_HIT

Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

h),NONE

无分类的结果用于特定错误,例如无效主机名。

相应于ICP查询,下列标签可能出现在access.log文件的第四域。

2,配置文件查错

/usr/local/squid/sbin/squid -k parse

说明:配置文件查错,如果有错误,或者警告,它会提示你fatal,或者warning

3,初始化cache目录

/usr/local/squid/sbin/squid -z

说明:启动squid的用户要有配置文件中cache目录的读写权限

4,前端调试squid

/usr/local/squid/sbin/squid -N -d1

说明:cache目录建好后,使用-N选项来保持squid在前台运行,-d1选项在标准错误里显示1级别的调试信息。没出报错,并且看到”Ready to serve requests”消息,表示squid可以了,用ctrl+c停止,或者ctrl+z来终止

5,后台启动squid

/usr/local/squid/sbin/squid

说明:-s选项是squid将重要的状态和警告信息写到syslog,其实我觉得吧,这个-s不要是最好,squid有自己的log了,还要写到syslog里面去干什么。

6,停止squid

/usr/local/squid/sbin/squid -k shutdown

7, 控制日志文件

/usr/local/squid/sbin/squid -k rotate

说明:squid对硬件的要求比较高,这也是一方面,squid日志文件很多,如果不对日志文件进行控制最后的结果会导致硬盘被写满。

8,重新加载配置文件

/usr/local/squid/sbin/squid -k reconfigure

说明:当改过东西后,就可以通过他来重新来加载配置。

9,制作启动脚本

说明:可以在vi etc/init.d/squid加上上面的东西,就可以自动重起了。

三,测试过程中遇到的问题

当我以代理的方式来访问http://localhost:9000/test/222.jpg,我看了一下access.log文件,会出现

127.0.0.1 – - [13/Jun/2010:19:02:45 +0800] “GET http://localhost:9000/test/222.jpg HTTP/1.1″ 304 218 TCP_REFRESH_UNMODIFIED:FIRST_UP_PARENT

当我很快的涮新时,时间间隔不超过1秒时,他就会全变成

127.0.0.1 – - [13/Jun/2010:19:02:45 +0800] “GET http://localhost:9000/test/222.jpg HTTP/1.1″ 304 215 TCP_IMS_HIT:NONE

这是为什么,很晕中。难道是说,压力不大,squid当作看不见。我在网上查了一下,也有人根我的这种情况类似,说是因为流览器的原因,在linux下面只能用firefox,没有IE啊,我想squid不会受浏览器的影响。思考中

参考:

squid 的一些常用操作,以及反向代理测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于nginx和squid反向代理实验,我可以为您提供一些基本的指导和概念说明。 首先,nginx和squid都是常用反向代理服务器软件。它们的主要功能是接收客户端请求,并将这些请求转发到后端的服务器上,然后将响应返回给客户端。这种反向代理的架构可以提供负载均衡、缓存、安全性等优势。 在进行实验之前,您需要确保已经安装了nginx和squid。安装方法可以参考官方文档或者相关的教程。 对于nginx,您可以通过修改nginx配置文件来配置反向代理。主要的配置项是`proxy_pass`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如负载均衡策略、缓存设置等。 下面是一个简单的nginx反向代理配置示例: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; } } ``` 在上面的示例中,所有请求都会被转发到`http://backend_server`这个后端服务器上。 对于squid,您可以通过编辑squid配置文件来配置反向代理。主要的配置项是`cache_peer`,它指定了需要转发的后端服务器地址。您可以根据需要添加其他的配置项,如缓存设置、访问控制等。 下面是一个简单的squid反向代理配置示例: ``` http_port 3128 http_access allow all cache_peer backend_server parent 80 0 no-query originserver acl our_sites dstdomain example.com http_access allow our_sites cache_peer_access backend_server allow our_sites ``` 在上面的示例中,squid监听在3128端口,所有请求都会被转发到`backend_server`这个后端服务器上。同时,针对example.com这个域名的请求会被允许访问。 请注意,以上只是简单的示例配置,实际的配置可能还涉及到其他方面的设置,如安全性、性能优化等。 希望以上信息能对您有所帮助!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值