Skip to content

nuxt-community/proxy-module

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

@nuxtjs/proxy

npm version npm downloads codecov license

Proxy support for Nuxt 2 server

πŸ“– Release Notes

Nuxt 3

In Nuxt 3 you can make use of Route Rules to configure your proxies.

export default defineNuxtConfig({
  routeRules: {
    '/proxy/example': { proxy: 'https://example.com' },
    '/proxy/**': { proxy: '/api/**' },
  }
})

Features

βœ“ Path rewrites

βœ“ Host based router (useful for staging/test)

βœ“ Logs / Proxy Events

βœ“ WebSockets

βœ“ Auth / Cookie

βœ“ ...See http-proxy-middleware docs

⚠ Does not work with nuxt generate (see static target).

Setup

  1. Add @nuxtjs/proxy dependency to your project
yarn add @nuxtjs/proxy # or npm install @nuxtjs/proxy
  1. Add @nuxtjs/proxy to the modules section of nuxt.config.js
{
  modules: [
    // Simple usage
    '@nuxtjs/proxy'
  ],
  proxy: {
    // see Proxy section
  }
}
  • Define as many as proxy middleware you want in proxy section of nuxt.config.js (See proxy section below)

proxy

You can provide proxy config using either object or array.

Array Config

You can use shorthand syntax to configure proxy:

{
  proxy: [
    // Proxies /foo to http://example.com/foo
    'http://example.com/foo',

    // Proxies /api/books/*/**.json to http://example.com:8000
    'http://example.com:8000/api/books/*/**.json',

    // You can also pass more options
    [ 'http://example.com/foo', { ws: false } ]
  ]
}

Object Config

Keys are context

{
  proxy: {
    // Simple proxy
    '/api': 'http://example.com',

    // With options
    '/api2': {
      target: 'http://example.com',
      ws: false
    },

    // Proxy to backend unix socket
    '/api3': {
      changeOrigin: false,
      target: { socketPath: '/var/run/http-sockets/backend.sock' }
    }
  }
}

Default Options

  • changeOrigin and ws options are enabled by default.

You can provide default options to all proxy targets by passing options to module options:

export default {
  modules: [
    // Disable ws option to all proxified endpoints
    ['@nuxtjs/proxy', { ws: false }]
  ],
  proxy: [
    'http://example.com/foo',
    'http://example.com:8000/api/books/*/**.json',
  ]
}

This will be similar to:

export default {
  modules: [
    '@nuxtjs/proxy',
  ],
  proxy: [
    ['http://example.com/foo', { ws: false }],
    ['http://example.com:8000/api/books/*/**.json', { ws: false }]
  ]
}

Development

  1. Clone this repository
  2. Install dependencies using yarn install or npm install
  3. Start development server using npm run dev

License

MIT License

Copyright (c) Nuxt Community

About

The one-liner node.js http-proxy middleware solution for Nuxt 2 using http-proxy-middleware

Resources

License

Stars

Watchers

Forks

Packages

No packages published