张宴在其关于nginx的那本书中的第11章介绍了关于nginx做为正向代理的配置及用法。其用法如下:

 1server {
 2    listen 8080;
 3    location / {
 4#        auth_basic            "test";
 5#        auth_basic_user_file  /root/password;
 6        resolver    8.8.8.8; /*google提供的DNS地址,若使用时也可以换成自己所在区域的DNS地址。*/
 7        proxy_pass http://$http_host$request_uri;
 8        }
 9   access_log /usr/local/nginx/logs/proxy.log;    /*在IE的连结选项设置使用代理浏览网页的访问日志可以在这里查看*/
10}

如果想使用为正向代理加密功能,就把启用配置中带#的两行。不过加密的密码文件最好使用apache下的htpasswd生成。htpasswd -c -d 密码文件 用户名,但nginx因为没有设置密码认证间隔的模块,所以每访问一个页面都要输入一次密码,对于没有安装可以保存密码的代理插件的浏览器用户来说简直就是恶梦。打麻将squid有credentialsttl选项可以设置验证的间隔时间。而且nginx也不支持基于https协议的正向代理。所以个人感觉其在正向代理上较squild和kingate相比较而言非常的鸡肋。

而squid和kingate的比较在chinaunix上一篇很老的文章进行介绍,如下:

  1. 在cache处理方面kingate不如squid,squid历史优久cache性能非常不错。相比之下kingate目前只支持mem_cache功能,kingate是个新软件,也正是这一点使kingate具有很多活力。
  2. squid采用单进程处理所有请求。kingate采用线程池的方式处理。在这点上kingate占有强大的优势,在多cpu系统上更能充分发挥性能。而squid由于是单进程所以在多cpu上,也只能使用一个cpu的资源。
  3. kingate使用c++开发,squid使用c语言开发。由于kingate使用了面向对象的技术,使得kingate的思路更为清晰,系统扩展更为方便。
  4. 在认证方式上squid比kingate好,目前版本kingate只支持IP认证。而squid还可以支持用户认证,kingate正在向这方面发展。
  5. 代理衉议支持上。kingate支持很多常见的衉议。http,https,socks(v4 and v5),ftp,mms,rtsp,telnet,pop3,smtp,而squid只支持http,https,ftp,gopher,wais,在这一点上kingate占了绝对的优势。
  6. 使用方便上。kingate更容易使用,更易上手。squid相对难上手,使用上没有kingate方便。kingate的配置都用中文注解。
  7. 稳定性方面和安全性方面squid比kingate好。但这一点会随着时间而发生改变。

http://bbs.chinaunix.net/thread-76352-1-1.html

kingate做为代理应用的后起之秀,其项目主页为http://sourceforge.net/projects/kingate/support

关于kingate因为是国人开发的,并且配置起来相对简单,所以关于其的详劲的中文文档并不是十分系统。不像squid做为老牌的代替缓存软件,其有较为系统的介绍文档——彭永华翻译的《Squid中文权威指南》,有兴趣的朋友可以参看一下。