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,可以根據自己的需要修改。
