nginx做透明代理

九月 10th, 2009

前一阵子在帮一朋友解决问题时,聊及nginx的透明代理的问题,当时就想修改nginx来实现透明代理,幸好一直没有付诸实现,不然又一次重造轮子.

下午在邮件列表中讨论到这个问题,nginx的作者Igor的回答让我茅塞顿开。看以下配置:

user  www;
worker_processes  1;
 
error_log  /var/log/nginx/error.log debug;
#pid        logs/nginx.pid;
 
 
events {
    use epoll;
    worker_connections  1024;
}
 
 
http {
    resolver 202.103.96.68;
    server {
        listen       81;
        location / {
                proxy_pass  http://$http_host$request_uri;
        }
    }
}

享受nginx给我们带来的快乐吧! :)

您可能还喜欢

10 Responses to “nginx做透明代理”

  1. kangzj Says:

    这下子我可以把squid干掉了,只留下nginx

  2. Tim Says:

    我觉得各有所专,反向代理一个很大作用是cache加速,如果用nginx只是起连接通道作用了。
    apache也有反向代理这个功能,同样很少人用那个特性。

  3. libing Says:

    确实,cache加速这个很重要,另外还有一个易于做限制,得益于他的强大的配置。

  4. John Says:

    Хм… читаю блоги по близкой тематике, а к Вам ни разу не наведывалась.

  5. nginx架设http代理 - Kangzj Says:

    [...] squid透明代理已经向大家介绍过了,前两天在Libing大哥的博客逛的时候发现原来也可以用nginx来作透明代理(个人觉得叫正向代理更合理些),学习了下,又丰富了下,给大家分享一下。 server { [...]

  6. sleetdrop Says:

    Libing都变成大哥了,我只能当大叔了…
    哎,时光啊!

  7. libing Says:

    哈哈哈!大叔,你老最近可好哇?

  8. ANdy Says:

    这样就可以了吗?

    要在用户网关上做设置吧,
    将外出访问的80包重定向到nginx所在的81端口吧!!

    如果要在IE里做设置,那只是正向代理。

  9. libing Says:

    那当然需要在网关上做设置啊,不然就在你的IE里边修改。

  10. ANdy Says:

    hehe,
    刚搭建了个nginx用作正向代理,
    在IE里设置proxy后访问网页倒是正常的,
    但在nginx的proxy_temp目录里没发现任何cache文件。

    nginx用作正向代理,不将远端的web内容缓存下来吗,
    还是需要另外设置规则?

Leave a Reply