proxy-module
proxy-module copied to clipboard
The one-liner node.js http-proxy middleware solution for Nuxt 2 using http-proxy-middleware
@nuxtjs/proxy
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
- Add
@nuxtjs/proxydependency to your project
yarn add @nuxtjs/proxy # or npm install @nuxtjs/proxy
- Add
@nuxtjs/proxyto themodulessection ofnuxt.config.js
{
modules: [
// Simple usage
'@nuxtjs/proxy'
],
proxy: {
// see Proxy section
}
}
- Define as many as proxy middleware you want in
proxysection ofnuxt.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
changeOriginandwsoptions 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
- Clone this repository
- Install dependencies using
yarn installornpm install - Start development server using
npm run dev
License
MIT License
Copyright (c) Nuxt Community