Skip to content

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

License

Notifications You must be signed in to change notification settings

nuxt-community/proxy-module

Repository files navigation

@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