首頁  >  文章  >  後端開發  >  nginx 設定匿名http正向代理

nginx 設定匿名http正向代理

WBOY
WBOY原創
2016-08-08 09:22:381975瀏覽

好久沒寫部落格了,在我遇到困難的時候,總是能從網路上找到一些大牛們寫的文章,解決我的問題。之前由於事情多,都是作為一個索取者,接下來有時間,我會盡量多寫些博客,把我遇到的問題的解決辦法,寫到博客上,分享給大家,作為回饋,也希望大家有時間都能夠把自己平常遇到的問題寫成博客,分享給更多的人,讓大家少走彎路。

這兩天在研究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;
<span>#allow 127.0.0.1;
            #deny all;</span>
<pre class="brush:php;toolbar:false">    }
}
二,Nginx 正向代理設定說明: DNS1,設定DNSNS 解析)。
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, c content-length=42, user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ( KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36, proxy-c/pre><br>
                
                
                <p>
                    以上就介紹了nginx 設定匿名http正向代理,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 </p>
                <p>
                    </p>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn