众所周知的原因,谷歌(Google)在我们的世界里总是若隐若现的,一些服务(如九尾搜索JWSS)为我们带来了便利,但是谷歌学术还是因为一些原因而很难稳定的使用下去,一方面也是谷歌在封锁一些公开的服务,于是,利用手上空余的VPS假设自己的Google服务就成了我等闲来无事折腾的目标。首先要感谢Cuber的ngx_http_google_filter_module的项目(Github地址),让nginx加上这个拓展之后,可以轻松实现Google的反代(微魔也不确定用反代这个词是否恰当)。
安装环境:Ubuntu 14.04,其他系统参照。另外,你还需要一个安全证书供https安全链接使用(参考《如何使用NameCheap赠送的SSL安全证书》,据说使用http很容易被封…所以https。)
1.安装相关软件
# # 安装 gcc & git apt-get install build-essential git gcc g++ make # 下载Nginx最新版源码 # http://nginx.org/en/download.html wget "http://nginx.org/download/nginx-1.9.2.tar.gz" # 下载最新版 pcre # http://www.pcre.org/ wget "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz" # 下载最新版 openssl # https://www.openssl.org/ wget "https://www.openssl.org/source/openssl-1.0.2c.tar.gz" # 下载最新版 zlib # http://www.zlib.net/ wget "http://zlib.net/zlib-1.2.8.tar.gz" # 下载本扩展 git clone https://github.com/cuber/ngx_http_google_filter_module # 下载 substitutions 扩展 git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module # 解压缩 tar xzvf nginx-1.9.2.tar.gz tar xzvf pcre-8.36.tar.gz tar xzvf openssl-1.0.2c.tar.gz tar xzvf zlib-1.2.8.tar.gz # 进入 nginx 源码目录 cd nginx-1.9.2 # 设置编译选项 ./configure \ --prefix=/opt/nginx-1.9.2 \ --with-pcre=../pcre-8.36 \ --with-openssl=../openssl-1.0.2c \ --with-zlib=../zlib-1.2.8 \ --with-http_ssl_module \ --add-module=../ngx_http_google_filter_module \ --add-module=../ngx_http_substitutions_filter_module make sudo make install # 启动Nginx sudo /opt/nginx-1.9.2/sbin/nginx
2.配置Nginx
编辑/opt/nginx-1.9.2/conf/nginx.conf
我的配置如下,红色部分为修改/追加于默认配置的内容
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { #强制http跳转https listen 80; server_name 域名; rewrite ^/(.*) https://域名/$1 permanent; } server { listen 443; server_name 域名; ssl on; ssl_certificate 证书.crt路径; ssl_certificate_key 证书.key路径; resolver 8.8.8.8; #charset koi8-r; #access_log logs/host.access.log main; location / { #添加Google和Google学术支持,重要! google on; google_scholar on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
最后重载一下Nginx的配置,应该就能看到Google的页面了。
/opt/nginx-1.9.2/sbin/nginx -s reload
看过留名