shape-proxy

0.1.0 • Public • Published

Simple proxy middleware for express. An adaptation of the grunt-connect-proxy module. Typically used in a development workflow only; not intended for use in production.

Basic usage

var express = require('express');
var proxy = require('shape-proxy');
 
var app = express();
var options = [
    {
        "context": "/api",
        "host": "localhost",
        "port": 7778,
        "https": false,
        "changeOrigin": false
    }
];
app.use(proxy(options));

Options

The available configuration options from a given proxy are generally the same as what is provided by the underlying http-proxy library.

options.context

Type: String or Array

The context(s) to match requests against. Matching requests will be proxied. Should start with a "/". Should not end with a "/".
"context": "/api"

Multiple contexts can be matched for the same proxy rule via an array such as:
"context": ["/api", "/otherapi"]

options.host

Type: String

The host to proxy to. Should not start with the http/https protocol.
"host": "localhost"

options.port

Type: Number Default: 80

The port to proxy to.

options.https

Type: Boolean Default: false

Whether to proxy with https

options.changeOrigin

Type: Boolean Default: false

Whether to change the origin on the request to the proxy, or keep the original origin.

options.rejectUnauthorized:

Type: Boolean Default: false

Whether to reject self-signed certificates when https: true is set. Defaults to accept self-signed certs since proxy is meant for development environments.

options.xforward:

Type: Boolean Default: false

Whether to add x-forward headers to the proxy request, such as
"x-forwarded-for": "127.0.0.1",
"x-forwarded-port": 50892,
"x-forwarded-proto": "http"

options.appendProxies

Type: Boolean Default: true

Set to false to isolate multi-task configuration proxy options from parent level instead of appending them.

options.rewrite

Type: Object

Allows rewrites of url (including context) when proxying. The object's keys serve as the regex used in the replacement operation. As an example the following proxy configuration will remove the context when proxying:

proxies: [
    context: '/context',
    host: 'host',
    port: 8080,
    rewrite: {
        '^/removingcontext': '',
        '^/changingcontext': '/anothercontext'
    }
]

Readme

Keywords

Package Sidebar

Install

npm i shape-proxy

Weekly Downloads

2

Version

0.1.0

License

none

Last publish

Collaborators

  • mjasso