网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

用自己的VPS搭建Google反向代理

【 作者:Tang 更新时间:2015-10-20 | 字体:
[导读]一><、准备工作首先要感谢wen.lu的开源。参见GitHub地址:http://www.chinawobo.com/cuber/ngx_http_google_filter_module中文的说明文档:http://www.chinawobo.com/cuber/ngx_http_google_filter_module/blob/master/README.zh-C...

一<>、准备工作

首先要感谢wen.lu的开源><。参见GitHub地址:

http://www.chinawobo.com/cuber/ngx_http_google_filter_module

中文的说明文档:

http://www.chinawobo.com/cuber/ngx_http_google_filter_module/blob/master/README.zh-CN.md

有GitHub的可以fork一份到自己的主页><>>。具体内容我就不复制过来了<。

感谢V2EX<。http://www.chinawobo.com/t/154344

其次要准备一台VPS>,要在墙外(美国、日本、香港等,推荐Bandwagonhost>,搬瓦工VPS中文网:www.bandwagonhost.cn)。最好是装上Ubuntu14.04系统<<<,因为目前网上流传的教程都是基于这个系统>>。下面开始教程<。

二<、教程

教程来自兽兽的通天塔>>,原文链接:

http://www.chinawobo.com/162/

为防编辑<<>,我复制如下:

一、编译安装 Nginx

1<、首先更新下系统

sudo apt-get update && sudo apt-get upgrade

2><、安装的 Nginx 需要的包以及 Git

sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev build-essential git

3><、新建立个 Nginx 目录,方便管理

mkdir nginx && cd nginx

下载 Nginx 最新稳定版>>,目前的版本是 1.6.2>><>,用 Git 克隆两个 Nginx ?<>??,一个是 wen.lu 开源的 ngx_http_google_filter_module,另一个是 Nginx 替换关键词?<??ngx_http_substitutions_filter_module

wget http://www.chinawobo.com/download/nginx-1.6.2.tar.gz
tar -xvf nginx-1.6.2.tar.gz
git clone http://www.chinawobo.com/cuber/ngx_http_google_filter_module
git clone http://www.chinawobo.com/yaoweibin/ngx_http_substitutions_filter_module

4>、进入 Nginx 目录并创建个 Nginx 临时文件夹

cd nginx-1.6.2
mkdir /var/tmp/nginx

5、使用下面的参数开始编译

./configure \
--prefix=/usr --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-scgi-temp-path=/var/tmp/nginx/scgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --with-http_ssl_module --with-http_gzip_static_module \
--add-module=/root/nginx/ngx_http_google_filter_module \
--add-module=/root/nginx/ngx_http_substitutions_filter_module

PS:如果需要支持 IPv6 请别忘记增加 IPv6 ???--with-ipv6

6<、没问题以后直接用 make 安装

make && make install

二、开启 Nginx 服务

默认这么安装好以后每次检查配置、重启之类的操作略麻烦>,所以我们模仿 Ubuntu 14.04 官方源,给系统设置个 nginx 服务<,方便我们检查配置<>、启动重启关闭 Nginx 以及开机自动启动 Nginx

1>>>、进入系统的 /etc/init.d 目录

cd /etc/init.d/

2、新建并编辑一个 nginx 文件

vi nginx

3><、具体内容如下

#!/bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx

# Include nginx defaults if available
if [ -f /etc/default/nginx ]; then
   . /etc/default/nginx
fi

test -x $DAEMON || exit 0

set -e

. /lib/lsb/init-functions

test_nginx_config() {
   if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1; then
      return 0
   else
      $DAEMON -t $DAEMON_OPTS
      return $?
   fi
}

case "$1" in
   start)
      echo -n "Starting $DESC: "
      test_nginx_config
      # Check if the ULIMIT is set in /etc/default/nginx
      if [ -n "$ULIMIT" ]; then
         # Set the ulimits
         ulimit $ULIMIT
      fi
      start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
          --exec $DAEMON -- $DAEMON_OPTS || true
      echo "$NAME."
      ;;

   stop)
      echo -n "Stopping $DESC: "
      start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
          --exec $DAEMON || true
      echo "$NAME."
      ;;

   restart|force-reload)
      echo -n "Restarting $DESC: "
      start-stop-daemon --stop --quiet --pidfile \
          /var/run/$NAME.pid --exec $DAEMON || true
      sleep 1
      test_nginx_config
      # Check if the ULIMIT is set in /etc/default/nginx
      if [ -n "$ULIMIT" ]; then
         # Set the ulimits
         ulimit $ULIMIT
      fi
      start-stop-daemon --start --quiet --pidfile \
          /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
      echo "$NAME."
      ;;

   reload)
      echo -n "Reloading $DESC configuration: "
      test_nginx_config
      start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
          --exec $DAEMON || true
      echo "$NAME."
      ;;

   configtest|testconfig)
      echo -n "Testing $DESC configuration: "
      if test_nginx_config; then
         echo "$NAME."
      else
         exit $?
      fi
      ;;

   status)
      status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
      ;;
   *)
      echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2
      exit 1
      ;;
esac

exit 0

4><、赋予权限并增加到系统服务

sudo chmod +x ./nginx
sudo update-rc.d nginx defaults

三>、修改默认的 nginx.conf 配置文件

默认官方的配置文件写的很简单<,这里我们也模仿 Ubuntu 14.04 官方源修改一个适合我们的 Nginx 配置

1>、编辑 /etc/nginx/nginx.conf

vi /etc/nginx/nginx.conf

具体内容如下:

worker_processes 4;
pid /var/run/nginx.pid;

events {
	worker_connections 768;
}

http {

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	server_tokens off;

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	proxy_temp_file_write_size 128k;
	proxy_temp_path   /var/cache/nginx/temp;
	proxy_cache_path  /var/cache/nginx/cache levels=1:2 keys_zone=cache_one:100m inactive=7d max_size=10g;

	gzip_static on;
	gzip on;
	gzip_disable "msie6";

	include /etc/nginx/sites-enabled/*;
}

2<<、新建几个必要的文件夹

其中 /etc/nginx/sites-enabled 用来放我们的网站配置文件,/var/log/nginx 用来放 log 日志文件<,/var/cache/nginx/cache/var/cache/nginx/temp 则是 Nginx 反代缓存文件夹>。

mkdir -p /etc/nginx/sites-enabled
mkdir -p /var/log/nginx
mkdir -p /var/cache/nginx/cache
mkdir -p /var/cache/nginx/temp

3>、检查 Nginx 配置

直接运行 nginx -t 如果输出如下提示,则一切正常

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

四<>>、开启 Nginx SSL 支持

1、为了管理方便>>,我们建立个 ssl 目录

mkdir -p /root/ssl && cd /root/ssl

2>、运行下面的命令,生成 example.com.keyexample.com.csr

openssl req -new -newkey rsa:2048 -nodes -out example.com.csr -keyout example.com.key -subj "/C=US/ST=CA/L=Los Angeles/O=Example Inc./OU=Web Security/CN=example.com"

如果是泛域名证书>,最后的域名改成 *.example.com

3>、然后把 csr 文件提交给你的 SSL 证书商

验证好域名以后会颁发给你一个 .crt 文件>,我们命名为 example.com.crt

4>、接着我们新建一个配置文件>,用来反代 Google

请自行更换配置文件里的域名和证书文件名

vi /etc/nginx/sites-enabled/google.conf

具体配置如下

server {
	listen 80;
	server_name example.com;
	return 301 http://www.chinawobo.com$request_uri;
}

server {
	listen 443 ssl;
	server_name example;
 
	ssl on;
	ssl_certificate /root/ssl/example.com.crt;
	ssl_certificate_key /root/ssl/example.com.key;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
	keepalive_timeout 70;
	ssl_session_cache shared:SSL:10m;
	ssl_session_timeout 10m;

	resolver 8.8.8.8;

	location / {
		google on;
		google_scholar "scholar.google.com";
	}
}

5><、保存后重启下 Nginx

service nginx restart

OK<,大功告成>!浏览器里访问 http://www.chinawobo.com/ 看看是否已经可以反代 Google 了>。

五>、注意事项

1<、Google 学术的域名各个地区的机房不一样><>,请先运行 curl -I scholar.google.com 看看是否跳转到了不同的域名,比如香港的服务器就会跳转到 scholar.google.com.hk<,日本的就会跳转到 scholar.google.co.jp><,那么相应的 google_scholar "scholar.google.com";这行就要修改成你服务器里访问到的域名

2>>、用的人过多以后 IP 会被 Google 限制>>,搜索的时候会要求输入验证码>,这里我们的解决方案是通过 DNS 轮转到不同的服务器<,这样就会有不同的出口 IP>,当然自己用的话没啥问题。

三、一些问题的解决

1><、nginx下安装SSL可能遇到的步骤问题

摘录一下兽兽另一个博客上关于nginx下安装SSL的步骤,仅作参考<<。原文:

http://www.chinawobo.com/nginx-https-ssl-module/

1<<<、Nginx 配置 ssl ?<??/strong>

默认 Nginx 是没有 ssl ??榈?<,而我的 VPS 默认装的是 Nginx 0.7.63 <,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl ?>>?榉椒ㄈ缦拢?/p>

下载 Nginx 0.7.64 版本<,解压 进入解压目录:

wget http://www.chinawobo.com/nginx/nginx-0.7.64.tar.gz
 tar zxvf nginx-0.7.64.tar.gz
 cd nginx-0.7.64

如果要更改header信息的话>,

vi src/core/nginx.h
 #define NGINX_VERSION      "0.7.62"
 #define NGINX_VER          "nginx/" NGINX_VERSION

上面的版本号和nginx自己修改

编译

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
 make && make install

如果有 IPV6 ???>,加上 –with-ipv6 参数:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6

(来源:http://www.chinawobo.com/thread-4871-1-1.html

因为是小网站<<>,用不着平滑升级,直接 killall nginx 杀掉 nginx 进程<<,然后 /usr/local/nginx/sbin/nginx 启动 nginx 即可

OK,升级并且安装好 ssl ?>?橥瓯?>,这里我把 Nginx 修改成了 zoulu>>>,于是乎:

image

怎么样,很有个性吧<!

2、使用 OpenSSL 生成证书

①>、生成RSA密钥的方法

openssl genrsa -out privkey.pem 2048

有的证书要 1024 的><<,所以得:

openssl genrsa -out privkey.pem 1024

②<、生成一个证书请求

openssl req -new -key privkey.pem -out cert.csr

会提示输入省份<、城市、域名信息等>,重要的是<,email 一定要是你的域名后缀的>><,比如 webmaster@zou.lu并且能接受邮件!

这样就有一个 csr 文件了,提交给 ssl 提供商的时候就是这个 csr 文件

(来源:http://www.chinawobo.com/blog/nginx_ssl_config/

直接 cat cert.csr

得到一大串字符<>>,比如这样:

-----BEGIN CERTIFICATE REQUEST-----
 MIIBsTCCARoCAQAwcTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkhCMQwwCgYDVQQH
 EwNTSloxDzANBgNVBAoTBkZhbmZvdTESMBAGA1UEAxMJZzFuZm91LmRlMSIwIAYJ
 KoZIhvcNAQkBFhN3ZWJtYXN0ZXJAZmFuZm91LmRlMIGfMA0GCSqGSIb3DQEBAQUA
 A4GNADCBiQKBgQC5l4PmZg6TCIpduefxq5gsLXN1JeQdBmUs+pEApeHmNoxE+R4k
 VkQUJzLj5o3ltQGJzYrcIfru8NryQSxaT/5IjeFwS7nIMsx8KPkQQ71BJazsiZj+
 CdLDRJj1m/SrjTsNrfYj4rFFS1FXq7uEDyreUx7fyAljx70jPSsGBOGwRQIDAQAB
 oAAwDQYJKoZIhvcNAQEFBQADgYEACKCBQcnCq5yE3GFyN3NyxCQEvnspkIv9AqI4
 FcwqyHPZWkupp3wfubHY80IwtfjlGlTSynzE7FZLVpcbNfKLnAYlYEwDY7NukJNy
 pCbyqpJJXdAl3Jcun0NlLtSxTQpR+abO8va/BAO5Hp9h1rpSRtTdSJd2fC/owRV1
 BfRuJnA=
 -----END CERTIFICATE REQUEST-----

提交给你的 ssl 提供商即可>,一般半个钟头到一天时间就会发给你证书,如图:

image_3

把所有文件全部上传到一个特定的目录<,比如我是上传到 /root/zoulu/

这里<,zoulukey.pem 和 zoulucert.csr 是自己在 VPS 生成的,剩下的都是证书签发机构颁发的><。

一般情况下,直接用证书签发机构颁发的 crt 文件即可<<<,比如 zou_lu.crt ,但是有很多证书签发机构默认在 Firefox 中文版下是不会信任的,经过仔细研究<><,终于发现<,原来得把证书签发机构办法给你的 crt 文件也放入才行>><。

方法如下:

合并 PositiveSSLCA.crt (证书签发机构的 crt) 和 zou_lu.crt (自己域名的 crt)

cat  zou_lu.crt >> PositiveSSLCA.crt
mv PositiveSSLCA.crt  zou_lu.crt

或者直接用记事本打开>,然后复制 PositiveSSLCA.crt 里面所有的内容到 zou_lu.crt 最下方即可。

(来源:http://www.chinawobo.com/blog/nginx_ssl_config/

2>、PositiveSSL 证书手机认证不安全问题

如果你用的是PositiveSSL证书>,那么很有可能会遇到这个问题>>,这里给出解决方法>,原文:

http://www.chinawobo.com/liwenzhu1989/article/details/8726417

positivessl.com购买下来的安全证书,直接使用到网站上在PC上是没有任何问题的,但是在手机上用chrome或者firefox打开,会说证书危险,不被信任的问题,这个原因是因为positivessl.com下载的证书,没有包含根证书和中间证书,只要把comodo给的根证书,中间证书追加到证书后面就可以认证安全了:

cat  STAR_domain_com.crt  AddTrustExternalCARoot.crt  PositiveSSLCA2.crt  >> STAR_domain_com.crt

之后这个新的证书就可以所有浏览器认证安全了<。

其实就是把颁发的几个证书都合并到一个就行了>>。具体的证书名请以你自己收到的证书名为准>。

四<、写在最后

这样之后应该就不会有什么问题了。效果可以访问http://www.chinawobo.com体验一下<。如果不想自己麻烦>,也可以直接用我搭建的<。

当然,还可以以此类推,反代Youtube,反代1024<>,反代各种网站,你懂的>。

原文:http://www.chinawobo.com/google-every-where.html

友荐云推荐
  • 转载请注明来源:网站运营 网址:http://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载<,但请务必注明出处和原始作者。文章版权归文章原始作者所有<<。对于被本站转载文章的个人和网站<<<>,我们表示深深的谢意><><。如果本站转载的文章有版权问题请联系我们>>,我们会尽快予以更正<>。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址><,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
  • 歹徒抢劫超市前请人占卜 梦到头发着火代表会有钱? 2018-05-27
  • 薪资倒退至17年前水平 台北网友叹买房困难 2018-05-27
  • 四川馆藏国家重点档案195万余卷 2018-05-27
  • 张天爱变胖了?淡雅甜笑险露双下巴 2018-05-26
  • 论对汉文化东传的基本认识 2018-05-26
  • 4月台州全市新建商品住宅成交3444套 2018-05-25
  • 河北盐山:“点、线、面”结合推进人才强县 2018-05-25
  • 北京市幼儿园年内完成全员培训 2018-05-25
  • 河南职业技术学院全国技能(导游类)大赛获佳绩 2018-05-24
  • Футбол -- Арены ЧМ-2018 -- Стадион Нижний Новгород 2018-05-24
  • 美媒:美国对华战略缺乏头脑 2018-05-23
  • 中国钢企布局沿海 柳钢瞄准东盟经济圈 2018-05-23
  • 2018的偶像元年是否只是一场美丽的谎言?偶像练习生创造101选秀 2018-05-22
  • 上海临港有个“儿童大学” 2018-05-20
  • 2017年世界大学学术排名发布 清华进前50大学学术排名大学排行榜 2018-05-20
  • 微商货源 | 冠珠陶瓷 | 6688电视家官网 | 中康体检网 | 安徽极热网 | 北京赛车开奖号码 | 快猴网 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 | 冠珠陶瓷 | 广东旅游景点大全 |
    RunTime:7.39ms QueryTime:7