Nginx Module for Google Mirror
Regular expressions, uri locations and other complex configurations have been built-in already.
The native nginx module ensure the efficiency of handling cookies, gstatic scoures and redirections.
Let's see how
Nowadays google scholar has migrate from
Description
ngx_http_google_filter_module
is a filter module which makes google mirror much easier to deploy.Regular expressions, uri locations and other complex configurations have been built-in already.
The native nginx module ensure the efficiency of handling cookies, gstatic scoures and redirections.
Let's see how
easy
it is to setup a google mirror.location / {
google on;
}
What? Are you kidding me?
Yes, it's just that simple!
https://g2.wen.lu
Demo siteDependency
pcre
regular expression supportngx_http_proxy_module
backend proxy supportngx_http_substitutions_filter_module
mutiple substitutions support
Installation
Download sources first
#
# download the newest source
# @see http://nginx.org/en/download.html
#
wget http://nginx.org/download/nginx-1.7.8.tar.gz
#
# clone ngx_http_google_filter_module
# @see https://github.com/cuber/ngx_http_google_filter_module
#
git clone https://github.com/cuber/ngx_http_google_filter_module
#
# clone ngx_http_substitutions_filter_module
# @see https://github.com/yaoweibin/ngx_http_substitutions_filter_module
#
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
Brand new installation
#
# configure nginx customly
# replace </path/to/> with your real path
#
./configure \
<your configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
Migrate from existed distribution
#
# get the configuration of existed nginx
# replace </path/to/> with your real path
#
</path/to/>nginx -V
> nginx version: nginx/ <version>
> built by gcc 4.x.x
> configure arguments: <configuration>
#
# download the same version of nginx source
# @see http://nginx.org/en/download.html
# replace <version> with your nginx version
#
wget http://nginx.org/download/nginx-<version>.tar.gz
#
# configure nginx
# replace <configuration> with your nginx configuration
# replace </path/to/> with your real path
#
./configure \
<configuration> \
--add-module=</path/to/>ngx_http_google_filter_module \
--add-module=</path/to/>ngx_http_substitutions_filter_module
#
# if some libraries were missing, you should install them with the package manager
# eg. apt-get, pacman, yum ...
#
Usage
Basic Configuration
resolver
is needed to resolve domains.server {
# ... part of server configuration
resolver 8.8.8.8;
location / {
google on;
}
# ...
}
Google Scholar
google_scholar
depends on google
, so google_scholar
cannot be used independently.Nowadays google scholar has migrate from
http
to https
, and ncr
is supported, so the tld
of google scholar is no more needed.location / {
google on;
google_scholar on;
}
Google Language
The default language can be set through
google_language
, if it is not setup, zh-CN
will be the default language.location / {
google on;
google_scholar on;
# set language to German
google_language de;
}
Supported languages are listed below.
ar -> Arabic
bg -> Bulgarian
ca -> Catalan
zh-CN -> Chinese (Simplified)
zh-TW -> Chinese (Traditional)
hr -> Croatian
cs -> Czech
da -> Danish
nl -> Dutch
en -> English
tl -> Filipino
fi -> Finnish
fr -> French
de -> German
el -> Greek
iw -> Hebrew
hi -> Hindi
hu -> Hungarian
id -> Indonesian
it -> Italian
ja -> Japanese
ko -> Korean
lv -> Latvian
lt -> Lithuanian
no -> Norwegian
fa -> Persian
pl -> Polish
pt-BR -> Portuguese (Brazil)
pt-PT -> Portuguese (Portugal)
ro -> Romanian
ru -> Russian
sr -> Serbian
sk -> Slovak
sl -> Slovenian
es -> Spanish
sv -> Swedish
th -> Thai
tr -> Turkish
uk -> Ukrainian
vi -> Vietnamese
Spider Exclusion
The spiders of any search engines are not allowed to crawl google mirror.
Default
Default
robots.txt
listed below was build-in aleady.User-agent: *
Disallow: /
If
google_robots_allow
set to on
, the robots.txt
will be replaced with the version of google itself. #...
location / {
google on;
google_robots_allow on;
}
#...
Upstreaming
upstream
can help you to avoid name resolving cost, decrease the possibility of google robot detection and proxy through some specific servers.upstream www.google.com {
server 173.194.38.1:443;
server 173.194.38.2:443;
server 173.194.38.3:443;
server 173.194.38.4:443;
}
Proxy Protocol
By default, the proxy will use
You can use
It is useful, if you want to proxy some domains through another gateway without ssl certificate.
https
to communicate with backend servers.You can use
google_ssl_off
to force some domains to fall back to http
protocol.It is useful, if you want to proxy some domains through another gateway without ssl certificate.
#
# eg.
# i want to proxy the domain 'www.google.com' like this
# vps(hk) -> vps(us) -> google
#
#
# configuration of vps(hk)
#
server {
# ...
location / {
google on;
google_ssl_off "www.google.com";
}
# ...
}
upstream www.google.com {
server < ip of vps(us) >:80;
}
#
# configuration of vps(us)
#
server {
listen 80;
server_name www.google.com;
# ...
location / {
proxy_pass https://www.google.com;
}
# ...
}
from https://github.com/cuber/ngx_http_google_filter_module
-----------
安装nginx的模块ngx_http_google_filter_module,以搭建google.com的镜像网站
前言
我们都知道,因为某些原因,无法正常在国内浏览谷歌。虽然在这个时候,很多朋友会去自己搭建或者是自己购买特殊服务(SS、V.P!N),但是对于日常浏览谷歌来说,没有必要这么麻烦。本次介绍个更为直接的方法,方便大家去谷歌学术和谷歌寻找资料~
必备材料
- Nginx
- 一台境外VPS
- 一颗敢于挑战的心
教程
首先登入SSH,安装Nginx,这个方法很多,无论你是军哥LNMP安装包还是Oneinstack,都是可以胜任的(强烈不推荐AMH)。安装完成后,运行
nginx -V
效果如下:
请复制图中 configure arguments: 后方的内容。从 –prefix= 一直到../ngx cache purge-2.3。
下一步请进入Nginx的源码包的上级目录,例如: 你源码包在 /root/oneinstack/src/nginx-1.10.2
那么源码包上级就在 /root/oneinstack/src
请cd至此
下面要下载,安装如下几个Nginx模块:
- pcre 正则
- ngx_http_proxy_module 反向代理
- ngx_http_substitutions_filter_module 多重替换
直接复制去运行吧:
git clone https://github.com/cuber/ngx_http_google_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
wget http://mirrors.linuxeye.com/oneinstack/src/pcre-8.38.tar.gz
tar xzf pcre-8.38.tar.gz
下面准备重新编译Nginx,请先进入Nginx目录,比如我的就是要cd nginx-1.10.2 :
./configure + 刚刚你复制的那一堆configure arguments + --add-module=../ngx_http_google_filter_module \
--add-module=../ngx_http_substitutions_filter_module
如果出错,请仔细阅读以上教程。
如果完成了,继续make和install
make
make install
至此,Nginx相关模块已经配置完成。
然后就是虚拟主机配置了,你需要准备:
- 一个可信的SSL证书
具体配置写在下面,oneinstack用户直接在/usr/local/nginx/conf/vhost/目录下新建一个conf文件:
server {
listen 443 ssl http2;
server_name 你的域名;
ssl_certificate SSL证书CRT完整绝对路径;
ssl_certificate_key SSL证书私钥KEY绝对路径;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers CHACHA20:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_session_cache builtin:1000 shared:SSL:10m;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
location / {
google on;
google_scholar on;
google_language zh-CN;
}
}
server {
listen 80;
server_name 你的域名;
rewrite ^(.*)$ https://$host$1 permanent; #访问http跳转至https
}
最后 service nginx reload 并且把域名解析到 你服务器就好啦~
-----------------------
查找方法发现一个更好方法,直接安装Nginx的模块即可。
模块介绍
ngx_http_google_filter_module是一个过滤器模块,能够让谷歌镜像更便捷的部署。内建了正则表达式、URI locations和其他复杂的配置。原生nginx模块确保了更加高效地处理cookies, gstatic scoures和重定向。
No comments:
Post a Comment