nginx正向代理的配置及實現


Nginx 正向代理

正向代理:如果把局域網外的Internet想象成一個巨大的資源庫,則局域網中的客戶端要訪問Internet,則需要通過代理服務器來訪問,這種代理服務就稱為正向代理。

 

 

目前現狀:只有1個機器能上網(web),其他機器不能 
方法:能上網的做一個代理web服務器中轉,其他機器連接它即可。采用nginx 

1.nginx的官網中(http://nginx.org/en/download.html),下載Linux版本的安裝包,我下載的版本為

 

 

2.源碼安裝(***

a) tar -zxvf nginx-1.4.7.tar.gz   解壓縮

b) Cd nginx-1.4.7

c) 該文件夾中有一個configure文件

d) ./configure    該命令的作用是安裝之前做檢測

e) Yum install gcc* -y 下載gcc,之后還可能有一些安裝包要下

f) ./configure之后,輸入make命令

g) 然后輸入make install 命令,安裝成功

h) 安裝路徑為  /usr/local/nginx

i) Cd /usr/local/nginx

j) vim /usr/local/nginx中的config文件夾中的nginx.conf

 


Nginx配置如下: 
server {

    resolver 8.8.8.8;

    resolver_timeout 5s;

 

    listen 0.0.0.0:80;

 

    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;

    }

}

二,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

配置完nginx之后,切換到/usr/local/nginx/sbin目錄中,輸入./nginx 啟動nginx服務

如果出現80端口被占用,

Lsof -i :80 查看80端口的pid進程號,然后用Kill -9 +進程號,刪除進程,再重啟服務


查看dns方法 
cat /etc/resolv.conf 

代理使用 

在需要訪問外網的機器上Linux系統執行以下操作之一即可: 
1. export http_proxy=http://yourproxyaddress:proxyport 
2. gedit ~/.bashrc  
    export http_proxy=http://yourproxyaddress:proxyport 
yourproxyaddress也就是你的Nginx服務器的ip了,proxyport就是上面配置中的80,可以根據自己的需要修改。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM