嘿嘿,其实是有点标题党了。。
Google 的首页的静态资源并没有使用 CDN,实现起来其实是比较简单的,如果有 CDN 的话还需要用正则替换静态链接。这里使用了 koa-proxy,虽然是下载之后再转发可能会带来一定的性能影响,不过可以使用 koa 的中间件对响应进行修改,如果用 koa-http-proxy 的话就没这么容易了。。
const Koa = require('koa')
const proxy = require('koa-proxy')
const mount = require('koa-mount')
const convert = require('koa-convert')
const app = new Koa();
const zlib = require('zlib')
app.use(convert(function * (next) {
yield next
if (this.path === '/' || this.path === '/search') {
const data = yield zlib.gunzip.bind(zlib, this.body)
const str = data.toString('utf-8').replace(/<body([^>]*)>/, `<body$1>
<div style="font-size: 14px; text-align: center; padding: 3px 10px;">Powered By <a href="https://www.lets-ss.com">lets-ss.com</a></div>
`)
this.body = yield zlib.gzip.bind(zlib, str)
}
}))
app.use(convert(proxy({
host: 'https://www.google.com.hk', // 目标站 点
jar: true, // 转发 cookie
followRedirect: false, // co-request 的参数,不跟随跳转
})));
app.listen(80);
测试可以使用 proxychains 让命令行走代理
proxychains node ./index.js
顺便分享一下我搭建的站点: https://g.lets-ss.com
1
ixiaohei 2017-05-31 20:19:46 +08:00
反代,不过你网站速度真慢
|
2
Showfom 2017-05-31 20:20:49 +08:00
这样公开域名很容易被墙的
|
4
des 2017-05-31 20:23:58 +08:00 via Android
数了一下,不止 10 行,lol
|
8
KIDJourney 2017-05-31 20:36:07 +08:00
说什么一共 10 行,你考虑过 Koa 的感受吗?
|
9
yzhen123 OP @KIDJourney 嘿嘿,其实是有点标题党哈,第一行就已经承认了,求各位大佬轻喷
|
11
douglas1997 2017-06-01 00:02:46 +08:00
package.json 可以共享一下吗?
|
12
eccstartup 2017-06-01 00:26:18 +08:00 via iPhone
@douglas1997 这是什么鬼
|
13
douglas1997 2017-06-01 07:26:04 +08:00
@eccstartup ?? nodejs 程序不是需要 packages.json 然后安装依赖?不知道楼主 koa 是什么版本。
|
14
loadinger 2017-06-01 09:11:47 +08:00
nodejs 会被你们这样搞臭的.别取这样的名字好么..
|
15
Dye8 2017-06-01 10:56:56 +08:00
10 行还不简单 楼主快去几个换行
|