前段时间克隆搭建一个好了一个Google 站,今天突发奇想克隆任意站,特此搜寻资料,写此文章.利用的是nginx反向代理技术,发现nginx博大精深,许多好用的第三模块真是很前强大.官方扩展模块地址:
http://nginx.org/en/docs/
搭建环境
所需模块:
ngx_http_sub_module (http://nginx.org/en/docs/http/ngx_http_sub_module.html)
substitutions4nginx模块 (https://github.com/yaoweibin/ngx_http_substitutions_filter_module)
下载编译之
1 | ./configure --prefix=/usr/local/nginx_test --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-file-aio --with-http_realip_module --with-http_sub_module --add-module=../ngx_http_substitutions_filter_module |
substitutions说明
这是一个内容替换模块(apache的 mod_substitute模块一样),类似的模块应该还有,这里就不说了
实例:
1 | location / { |
Nginx反向代理并替换内容涉及指令:
subs_filter_types
subs_filter
subs_filter_types 语法: subs_filter_types mime-type [mime-types]
默认: subs_filter_types text/html
内容: http, server, location
subs_filter_types 是用来指定替换文件类型的 默认仅仅替换text/html类型的文件。
*如果您反代的网站出现登录跳转源站之类的问题,请检查这个项目。
proxy_set_header Accept-Encoding “”;
subs_filter 语法: subs_filter source_str destination_str [gior]
默认: none
内容: http, server, location
subs_filter 是用来替换文本的,可以使用正则
g(默认):替换匹配项。
i:区分大小写的匹配
o: 只匹配发现的第一个。
r: 正则。
缓存设置
nginx.conf的http层
1 | proxy_connect_timeout 5; |
创建缓存目录:
1 | mkdir -p /home/cache/path |
nginx.conf 文件:
1 | ########################################################## |
内容替换
1 | http{ |
nuster/haproxy
1 | global |