很多同學喜歡用nginx做反向代理訪問某些網站,原因大家都懂的,今天老高記錄一下如何使用nginx做反向代理以及如何配置和優化nginx的反向代理。
准備工作
首先,你需要一個穩定的國外的便宜的VPS,老高推薦搬瓦工,當然你有DO等更快的更貴的VPS就例外了,老高的博客就建立在這個VPS上的。
如何獲取你的VPS,請移步 30元一年,打造自己的翻牆VPS
假設你已經有了自己的VPS,我們以后假定安裝了centos。那么安裝前,一定要執行命令 yum update -y
,讓系統處於最新的狀態!
下面我們就開始折騰吧!
下載和安裝nginx
當然要使用最新穩定版的nginx,其他版本也行。
然后我們開始編譯和安裝。
具體操作請參考 安裝編譯nginx , 注意nginx的編譯參數。其中--with-http_spdy_module
是Google的SPDY,還不是很穩定,所以如果你不需要這個功能,編譯的時候請刪除。
當安裝完畢后應該能夠訪問到這個頁面
然后參考 nginx配置詳解 讓需要反代的域名工作起來,比如綁定域名等工作。
配置反代
簡單的反代就是http,也沒有什么緩存控制等高級功能,僅僅一個簡單的代理,比如反代老高的博客 http://www.phpgao.com
。
其實nginx+php也是反代,如下:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
而復雜點的反代應該就是反代Google一類的https網站,訪問量可能會比較大,有緩存等功能,比如 https://www.google.com
。
簡單反代
下面老高的域名www.phpgao.com
代理某網站為例,介紹如何使用反代
編輯/etc/nginx.conf
文件,新建一個server,輸入以下內容
server { listen 80; server_name www.phpgao.com;
#charset koi8-r; #access_log /var/log/nginx/log/www.phpgao.com.access.log main; error_log /var/log/nginx/log/www.phpgao.com.error.log; location / { sub_filter t66y.com www.phpgao.com; # 地址重寫 proxy_pass http://t66y.com; #proxy_redirect off; #proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer http://$host; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }
}
然后重啟nginx
service nginx restart
折騰了一番,讓我們來看看成果吧!
需要注意
sub_filter
需要ngx_http_sub_module模塊,編譯時需要加上對應參數。
Reference: