Merge branch 'hotfix/limiter' into 'gray'
'limiter-key' See merge request !1303
Showing
5 changed files
with
13 additions
and
12 deletions
@@ -65,11 +65,6 @@ app.use((req, res, next) => { | @@ -65,11 +65,6 @@ app.use((req, res, next) => { | ||
65 | // 添加请求上下文 | 65 | // 添加请求上下文 |
66 | app.use(global.yoho.httpCtx()); | 66 | app.use(global.yoho.httpCtx()); |
67 | 67 | ||
68 | -// 请求限制中间件 | ||
69 | -if (!app.locals.devEnv) { | ||
70 | - app.use(require('./doraemon/middleware/limiter')); | ||
71 | -} | ||
72 | - | ||
73 | // 指定libray目录 | 68 | // 指定libray目录 |
74 | global.utils = path.resolve('./utils'); | 69 | global.utils = path.resolve('./utils'); |
75 | 70 | ||
@@ -162,6 +157,11 @@ try { | @@ -162,6 +157,11 @@ try { | ||
162 | app.use(seo()); | 157 | app.use(seo()); |
163 | app.use(setPageInfo()); | 158 | app.use(setPageInfo()); |
164 | 159 | ||
160 | + // 请求限制中间件 | ||
161 | + if (!app.locals.devEnv) { | ||
162 | + app.use(require('./doraemon/middleware/limiter')); | ||
163 | + } | ||
164 | + | ||
165 | if (app.locals.devEnv) { | 165 | if (app.locals.devEnv) { |
166 | app.use(devtools()); | 166 | app.use(devtools()); |
167 | } | 167 | } |
@@ -18,7 +18,8 @@ const IP_WHITE_LIST = [ | @@ -18,7 +18,8 @@ const IP_WHITE_LIST = [ | ||
18 | '106.39.86.227', | 18 | '106.39.86.227', |
19 | '218.94.75.58', | 19 | '218.94.75.58', |
20 | '218.94.75.50', | 20 | '218.94.75.50', |
21 | - '218.94.77.166' | 21 | + '218.94.77.166', |
22 | + '222.73.196.18' // B站合作方单击次数快加白名单 | ||
22 | ]; | 23 | ]; |
23 | 24 | ||
24 | const PATH_WHITE_LIST = [ | 25 | const PATH_WHITE_LIST = [ |
@@ -2,16 +2,16 @@ | @@ -2,16 +2,16 @@ | ||
2 | 2 | ||
3 | const cache = global.yoho.cache.master; | 3 | const cache = global.yoho.cache.master; |
4 | const _ = require('lodash'); | 4 | const _ = require('lodash'); |
5 | -const config = global.yoho.config; | ||
6 | const logger = global.yoho.logger; | 5 | const logger = global.yoho.logger; |
7 | 6 | ||
8 | module.exports = (limiter, policy) => { | 7 | module.exports = (limiter, policy) => { |
9 | - const key = `${config.app}:limiter:${limiter.remoteIp}`; | 8 | + // 和pc共用 |
9 | + const key = `pc:limiter:${limiter.remoteIp}`; | ||
10 | 10 | ||
11 | return cache.getAsync(key).then((result) => { | 11 | return cache.getAsync(key).then((result) => { |
12 | logger.debug(key, result); | 12 | logger.debug(key, result); |
13 | 13 | ||
14 | - if (result && _.isNumber(result)) { | 14 | + if (result && _.isNumber(result) && result !== -1) { |
15 | return Promise.resolve(policy); | 15 | return Promise.resolve(policy); |
16 | } else { | 16 | } else { |
17 | return Promise.resolve(true); | 17 | return Promise.resolve(true); |
@@ -44,7 +44,7 @@ module.exports = (limiter, policy) => { | @@ -44,7 +44,7 @@ module.exports = (limiter, policy) => { | ||
44 | } else if (+results[key] > +val) { | 44 | } else if (+results[key] > +val) { |
45 | 45 | ||
46 | // ip限制1小时 | 46 | // ip限制1小时 |
47 | - operation.push(cache.setAsync(`${config.app}:limiter:${limiter.remoteIp}`, 1, limiterIpTime)); | 47 | + operation.push(cache.setAsync(`pc:limiter:${limiter.remoteIp}`, 1, limiterIpTime)); |
48 | return Promise.resolve(policy); | 48 | return Promise.resolve(policy); |
49 | } else { | 49 | } else { |
50 | operation.push(cache.incrAsync(cacheKey, 1)); | 50 | operation.push(cache.incrAsync(cacheKey, 1)); |
@@ -6,8 +6,8 @@ const logger = global.yoho.logger; | @@ -6,8 +6,8 @@ const logger = global.yoho.logger; | ||
6 | 6 | ||
7 | 7 | ||
8 | module.exports = (limiter, policy) => { | 8 | module.exports = (limiter, policy) => { |
9 | - const blackKey = 'wap:limiter:ua:black', | ||
10 | - whiteKey = 'wap:limiter:ua:white'; | 9 | + const blackKey = 'pc:limiter:ua:black', |
10 | + whiteKey = 'pc:limiter:ua:white'; | ||
11 | 11 | ||
12 | const ua = limiter.req.header('User-Agent'); | 12 | const ua = limiter.req.header('User-Agent'); |
13 | 13 |
-
Please register or login to post a comment