포스트

Nextjs에서 미들웨어가 없다면 백엔드 게이트웨이를 써서(이가 없으면 잇몸으로..!), 그리고 Nextjs미들웨어와 무관한 초경량 프록시를 두는 방법에 대해.

Nextjs 15.3.3 에서는 turbopack을 사용했을 시 공식적으로 middleware 사용 불가인 점이 명시되어 있습니다.

한편, turbopack을 포기하고 webpack을 사용했을 시에는 middleware를 사용할 수 있다고는 하는데요,

거기에도 여러 상황에서 미들웨어가 그대로 패싱되어버리는 불편함이 있어서, 그런 모든 상황을 컨트롤할 수 없는 nextjs 비숙련자 입장에서는 미들웨어가 너무도 불확실한 솔루션으로 보이게 되는 것 같습니다.

게이트웨이가 더 강력한 방법이고, 지금 서브도메인 별로 별도 웹사이트를 하기로 분리했기 때문에, 지금 각 미들웨어에 집중하느니 하나의 게이트웨이에 집중하는게 나을 수 있겠다.

프론트에 미들웨어의 역할은 필수이고, 만약 없다면 게이트웨이에 미들웨어가 했어야 했을 역할도 넘겨주어야 함. 그건 주로 봇 차단과 보안 관리.

미들웨어가 있었다면, biblecardai.blessflow.com → Next.js 앱 → middleware.ts → 로그인 여부 검사 → /dashboard or /login

미들웨어가 없다면 먼저 게이트웨이를 통해서 프론트앱으로 전달된다. biblecardai.blessflow.com → API Gateway → 로그인 체크 후 → Next.js 앱에 프록시 전달

여기서 봇이 직접 프론트에 접근해서 폭풍 GET 요청을 보냈던 경험은 방금 하고 왔기에 위 문제에 크게 공감한다.

https://blog.naver.com/devramyun/223902203888

[20250617] 봇한테 스캔당함..ㄷㄷ nextjs 프론트를 만들다가 npm run dev를 했을 뿐인데 알 수 없는 로그가 계속 띄워졌다. 다음과 같이 수정… nextjs 프론트를 만들다가 npm run dev를 했을 뿐인데 알 수 없는 로그가 계속 띄워졌다. 다음과 같이 수정…

그걸 막는 미들웨어 역할이 중요하고, 미들웨어가 시원찮다면 확실하게 백엔드 게이트웨이에 그 역할을 넘겨주는게 맞는다고 본다.

sticker

sticker

ㅎㅎ

역시 각 요소의 제 역할이 있는 법.

nextjs의 미들웨어 지원이 못미더워서 빼려고 했으나, 가벼운 프록시로 게이트웨이의 책임을 분산하는게 좋으므로 비슷한 역할의 프록시 서버를 맨 앞단에 넣기로 한다.

참고)

#python_fastapi_MSA서버_성경말씀이미지카드_자동생성_서비스

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.