Authored by 毕凯

Merge branch 'hotfix/limiter' into 'gray'

'limiter-key'



See merge request !1303
@@ -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