众所周知的原因,谷歌(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
看过留名