由於衆所周知的原因,導致vps一直不能訪問,想到nginx反向代理服務器可以部署到任意主機上,於是想了一招可以解決。參考nginx+apache單IP多站點反向代理配置,http://www.straka.cn/blog/nginx_apache_multisites_conf/。網站部署在A站點,當A站點被封時,可以另外申請主機B作爲反向代理服務器,反向代理服務器只需要安裝nginx並配置,再將域名解析到代理服務器上即可,因而當B被封殺,就申請B1、B2、B3……總不至於把DO公司的IP全封了吧,哈哈。
nginx安裝(以ubuntu爲例)
sudo apt-get install nginx
配置同另一篇博文介紹,以A站點IP爲a.a.a.a,域名爲www.aaa.com爲例:
server{
listen 80;
server_name www.aaa.com;
location / {
proxy_pass http://a.a.a.a:80/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
注意這裏要設置proxy_set_header,其中$host爲客戶端所請求的主機名,如果後續服務器配置爲多站點模式必須保留轉發,否則後續服務器無法根據請求主機正確解析。$remote_addr爲客戶端IP地址,保留並轉發至服務器,否則服務器得到的客戶端IP全部爲代理服務器地址,無法做統計,同理X-Forwarded-For爲代理記錄,設爲$remote_addr表示不將本代理IP地址記錄,如果要加上本代理服務器IP,則加上$proxy_add_x_forwarded_for。
原文:
http://www.straka.cn/blog/nginx_antigfw/