nginx 设置匿名http正向代理

好久没写博客了,在我遇到困难的时候,总能从网上找到一些大牛们写的文章,解决我的问题。之前由于事情多,都是作为一个索取者,接下来有时间,我会尽量多写些博客,把我遇到的问题的解决办法,写到博客上,分享给大家,作为回馈,也希望大家有时间都能够把自己平常遇到的问题写成博客,分享给更多的人,让大家少走弯路。

这两天在研究nginx的正向代理,想通过nginx搭建一个http代理服务器,网站找到了这篇文章(http://www.cnblogs.com/inteliot/archive/2013/01/11/2855907.html):

配置 Nginx Http Proxy 代理服务器,与 [Squid] 功能一样,适用于正向代理 Http 网站。

一,Nginx 正向代理配置文件:

server {
    resolver 8.8.8.8;
    resolver_timeout 5s;
 
    listen 0.0.0.0:8080;
 
    access_log  /home/reistlin/logs/proxy.access.log;
    error_log   /home/reistlin/logs/proxy.error.log;
 
    location / {
        proxy_pass $scheme://$host$request_uri;
        proxy_set_header Host $http_host;
 
        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0;
 
        proxy_connect_timeout 30;
 
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;
#allow 127.0.0.1;
#deny all;
}
}


二,Nginx 正向代理配置说明:

1,配置 DNS 解析 IP 地址,比如 Google Public DNS,以及超时时间(5秒)。

resolver 8.8.8.8;
resolver_timeout 5s;

2,配置正向代理参数,均是由 Nginx 变量组成。其中 proxy_set_header 部分的配置,是为了解决如果 URL 中带 "."(点)后 Nginx 503 错误。

proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;

3,配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。

proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;

4,配置代理服务器 Http 状态缓存时间。

proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

三,不支持代理 Https 网站

因为 Nginx 不支持 CONNECT,所以无法正向代理 Https 网站(网上银行,Gmail)。
如果访问 Https 网站,比如:https://www.google.com,Nginx access.log 日志如下:

"CONNECT www.google.com:443 HTTP/1.1" 400

作者写的很棒,不过,我在配置过程中,遇到问题,就是通过配置的代理访问页面都报404(我的nginx版本:1.2),后来我发现需要改下proxy_pass:

proxy_pass $scheme://$host$request_uri;
改成:

proxy_pass $scheme://$http_host$request_uri;

这样就可以了,另外我加上了ip的限制,大家有需要可以将上面的注释打开就行:

allow 127.0.0.1;
deny all;

经验证,上面的代码是可以用的。服务器端得到的代码如下,不过不知道怎么会带了一个proxy-connection,这估计只能算是普通匿名,不能算是高级匿名:

head info:{content-type=application/x-www-form-urlencoded; charset=UTF-8, connection=close,  content-length=42, user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36, proxy-connection=Keep-Alive}




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: 正向代理代理对象是客户端,反向代理代理对象是服务端。代理服务器站在客户端那边就是正向代理代理服务器站在原始服务器那边就是反向代理nginx通过proxy_pass可以设置代理服务。 正向代理是指客户端通过代理服务器访问互联网资源,客户端向代理服务器发送请求代理服务器再代表客户端向目标服务器发出请求,然后将响应返回给客户端。这种情况下,目标服务器并不知道真正的请求来自哪个客户端,只知道代理服务器的IP地址。正向代理常用于加密和突破网络限制,隐藏真实IP地址等需求。 反向代理是指客户端向代理服务器发送请求代理服务器根据配置的规则将请求转发到多个目标服务器中的一个,然后将目标服务器的响应返回给客户端。客户端并不知道真正提供服务的是哪个目标服务器,只知道代理服务器的IP地址。反向代理常用于负载均衡、缓存加速、安全防护等需求。 引用: 正向代理和反向代理的概念可以通过租房来进行解释。正向代理就好像你找了一个中介帮你租房,你向中介提出需要租房的要求,中介根据你的要求帮你找到合适的房源,并将房源信息转发给你。你并不知道真正的房东是谁,只知道中介的联系方式。反向代理则相反,房东找了一个中介来帮他出租房屋,中介接收房东的房源信息,然后根据特定的规则将房源分配给租客。租客并不知道真正提供房源的是哪个房东,只知道中介的联系方式。 对于nginx来说,可以通过配置文件中的proxy_pass指令来实现反向代理正向代理。通过设置代理服务器的地址和端口,nginx将客户端的请求转发到目标服务器,并将目标服务器的响应返回给客户端。在配置文件中,可以通过添加resolver和proxy_pass指令来设置反向代理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深度详解Nginx正向代理与反向代理](https://blog.csdn.net/weixin_46286156/article/details/127524441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值