增加 api 限流配置

This commit is contained in:
whyour 2023-05-30 16:41:19 +08:00
parent f8dfee8945
commit 998e82d323
4 changed files with 21 additions and 1 deletions

View File

@ -17,6 +17,12 @@ import { errors } from 'celebrate';
import path from 'path'; import path from 'path';
import { createProxyMiddleware } from 'http-proxy-middleware'; import { createProxyMiddleware } from 'http-proxy-middleware';
import { serveEnv } from '../config/serverEnv'; import { serveEnv } from '../config/serverEnv';
import rateLimit from 'express-rate-limit'
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
})
export default ({ app }: { app: Application }) => { export default ({ app }: { app: Application }) => {
app.enable('trust proxy'); app.enable('trust proxy');
@ -125,6 +131,7 @@ export default ({ app }: { app: Application }) => {
}); });
app.use(rewrite('/open/*', '/api/$1')); app.use(rewrite('/open/*', '/api/$1'));
app.use('/api', limiter)
app.use(config.api.prefix, routes()); app.use(config.api.prefix, routes());
app.use((req, res, next) => { app.use((req, res, next) => {

View File

@ -14,7 +14,7 @@ import SockService from './sock';
import { FindOptions, Op } from 'sequelize'; import { FindOptions, Op } from 'sequelize';
import { concurrentRun } from '../config/util'; import { concurrentRun } from '../config/util';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { runCronWithLimit } from 'back/shared/pLimit'; import { runCronWithLimit } from '../shared/pLimit';
@Service() @Service()
export default class DependenceService { export default class DependenceService {

View File

@ -68,6 +68,7 @@
"dotenv": "^16.0.0", "dotenv": "^16.0.0",
"express": "^4.17.3", "express": "^4.17.3",
"express-jwt": "^6.1.1", "express-jwt": "^6.1.1",
"express-rate-limit": "^6.7.0",
"express-urlrewrite": "^1.4.0", "express-urlrewrite": "^1.4.0",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"got": "^11.8.2", "got": "^11.8.2",

View File

@ -40,6 +40,9 @@ dependencies:
express-jwt: express-jwt:
specifier: ^6.1.1 specifier: ^6.1.1
version: 6.1.2 version: 6.1.2
express-rate-limit:
specifier: ^6.7.0
version: 6.7.0(express@4.18.2)
express-urlrewrite: express-urlrewrite:
specifier: ^1.4.0 specifier: ^1.4.0
version: 1.4.0 version: 1.4.0
@ -7995,6 +7998,15 @@ packages:
lodash: 4.17.21 lodash: 4.17.21
dev: false dev: false
/express-rate-limit@6.7.0(express@4.18.2):
resolution: {integrity: sha512-vhwIdRoqcYB/72TK3tRZI+0ttS8Ytrk24GfmsxDXK9o9IhHNO5bXRiXQSExPQ4GbaE5tvIS7j1SGrxsuWs+sGA==}
engines: {node: '>= 12.9.0'}
peerDependencies:
express: ^4 || ^5
dependencies:
express: 4.18.2
dev: false
/express-unless@1.0.0: /express-unless@1.0.0:
resolution: {integrity: sha512-zXSSClWBPfcSYjg0hcQNompkFN/MxQQ53eyrzm9BYgik2ut2I7PxAf2foVqBRMYCwWaZx/aWodi+uk76npdSAw==} resolution: {integrity: sha512-zXSSClWBPfcSYjg0hcQNompkFN/MxQQ53eyrzm9BYgik2ut2I7PxAf2foVqBRMYCwWaZx/aWodi+uk76npdSAw==}
dev: false dev: false