13. 서버

Server Engine

Nuxt의 서버는 Nitro 입니다. 원래는 Nuxt용으로 만들어졌지만 이제는 UnJS 의 일부 이며 다른 프레임워크에도 개방되어 있으며 자체적으로도 사용할 수 있다.


Nuxt 에 포함된 Nitro 의 능력은 다음과 같다:

  • 앱의 서버 측 부분을 완전히 제어한다.
  • 모든 공급자에 대한 범용 배포(많은 zero config)
  • 하이브리드 렌더링

Nitro는 내부적으로 고성능과 이식성을 위해 구축된 최소 H(TTP) 프레임워크인 h3 을 사용하고 있다 .


서버 엔드포인트 및 미들웨어

API 엔드포인트에서 미들웨어까지 Nuxt 앱의 서버 전용 부분을 쉽게 관리할 수 있다.


엔드포인트와 미들웨어는 모두 다음과 같이 정의할 수 있다.

server/api/test.ts

export default defineEventHandler(async (event) => {
  // ... Do whatever you want here
})

다음, text, json, html 혹은 stream 을 직접 반환할 수 있다.

참고) Docs > Guide > Directory Structure > Server

 

범용 배포

Nitro는 단 몇 밀리초의 시작 시간으로 베어메탈 서버부터 에지 네트워크까지 어디에서나 Nuxt 앱을 배포할 수 있는 기능을 제공한다.

 

참고) 블로그  Nuxt On The Edge


아래를 포함하여 다양한 클라우드 제공업체 및 서버용 Nuxt 앱을 구축하기 위한 15개 이상의 사전 설정이 있다.

  • Cloudflare Workers
  • Netlyfy Functions
  • Vercel Edge Network
  • Lagon

혹은 DenoBun 같은 런타임도 있다.

 

하이브리드 렌더링

Nitro 에는 Nuxt 앱의 각 경로가 렌더링되는 방식 등을 사용자 정의하는 할 수 있는 세트를 제공하는  routeRules 이라는 강력한 기능이 있다.

// nuxt.config.ts

export default defineNuxtConfig({
  routeRules: {
    // Generated at build time for SEO purpose
    '/': { prerender: true },
    // Cached for 1 hour
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // Redirection to avoid 404
    '/old-page': {
      redirect: { to: { '/new-page', statusCode: 302 }
    }
    // ...
  }
})

경로의 렌더링 모드를 사용자 정의하는 데 사용할 수 있는 모든 경로 규칙.


더해서, 페이지를 HTML로 렌더링할 때 동작을 변경하기 위한 Nuxt 관련 몇 가지 경로 규칙(예: ssr 및 .experimentalNoScripts)이 있다.


일부 라우팅 규칙( redirect 및 prerender)은 클라이언트 측 동작에도 영향을 미친다.


Nitro는 사전 렌더링은 물론 서버 측 렌더링을 위한 앱을 빌드하는 데 사용된다.
참고) Docs > Guide > Concepts > Rendering


'Nuxt 공식문서 번역 > 개요' 카테고리의 다른 글

15. 배포  (1) 2023.12.11
14. 레이어  (0) 2023.12.11
12. 오류 처리(Error Handling)  (0) 2023.12.11
11. 상태 관리  (0) 2023.12.11
10. 데이터 가져오기(Data fetching)  (0) 2023.12.11
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유