nginx 反向代理 google

nginx的反向代理,google一直都是不容易打开的,如果你有一台位于国外的vps或者服务器,就可以轻松解决这个问题,这次的主角是nginxnginx的反向代理现在已经发展很强大了,很多时候拿他来做负载均衡,当然这次只聊聊他的反向代理网站,有人也拿它来做小偷程序。

本次会用到一个nginx的模块,如果没有安装请到官方网站:

https://github.com/yaoweibin/ngx_http_substitutions_filter_module

里面有详细的安装说明,需要重新编译一下nginx。

下面贴一下nginx的配置,假如我们要绑定的域名是www.abc.com,google的地址为www.abc.com/google/

配置如下:

location /google {
        proxy_set_header Accept-Encoding "";
        proxy_redirect http://www.google.com/ http://www.abc.com/google/;
        proxy_pass http://www.google.com/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        subs_filter 'www.google.com' 'www.abc.com/google';
        subs_filter 'href="/' 'href="http://www.abc.com/google/';
        subs_filter '<form action="/' '<form action="http://www.abc.com/google/';
}
重新启动nginx,访问www.abc.com/google/ 即可转向google

再贴一个twitter的:

C#

location /twitter {
proxy_set_header Accept-Encoding "";
proxy_redirect https://mobile.twitter.com/ https://www.abc.com/twitter/;
proxy_pass https://mobile.twitter.com/;
subs_filter mobile.twitter.com www.abc.com/twitter;
subs_filter 'href="/' 'href="https://www.abc.com/twitter/';
subs_filter '<form action="/' '<form action="https://www.abc.com/twitter/';
subs_filter 't.co' 'www.abc.com/t.co';
}
location /t.co {
proxy_pass http://t.co/;
}

location /twitter {
proxy_set_header Accept-Encoding "";
proxy_redirect https://mobile.twitter.com/ https://www.abc.com/twitter/;
proxy_pass https://mobile.twitter.com/;
subs_filter mobile.twitter.com www.abc.com/twitter;
subs_filter 'href="/' 'href="https://www.abc.com/twitter/';
subs_filter '<form action="/' '<form action="https://www.abc.com/twitter/';
subs_filter 't.co' 'www.abc.com/t.co';
}
location /t.co {
proxy_pass http://t.co/;
}

这个需要打开ssl功能,也就是https访问,这个不难,我之前也介绍过,怎么拿到浏览器能够认证的免费ssl证书。

上一篇:[转贴] C++ 判断主机是否处于联网状态下


下一篇:windows下的NodeJS安装