lite-proxy

lite-proxy is a tool to create a proxy server just with a piece of config. Why I create lite-proxy? In client/server architecture, I have meet several front-end projects, who can't access server data when develop and debug in localhost, the reasons as bellow: * CORS * Authentication: Request header or cookie not match in localhost environment

Usage no npm install needed!

<script type="module">
  import liteProxy from 'https://cdn.skypack.dev/lite-proxy';
</script>

README

lite-proxy

lite-proxy is a tool to create a proxy server just with a piece of config. Why I create lite-proxy? In client/server architecture, I have meet several front-end projects, who can't access server data when develop and debug in localhost, the reasons as bellow:

  • CORS
  • Authentication: Request header or cookie not match in localhost environment

If want to solve these problems, nginx can work, but a lot of work need to do and not friendly to new guys(even front-end guys). So lite-proxy comes, as a dependency of project, easy to use. Just a piece of config and then npm run liteproxy, it's done.

How to use

install

Use npm install -save-dev lite-proxy to install or put "lite-proxy": "^1.0.0", in your package.json.

configure

Just config in you package.json as bellow:

...
"liteProxy": {
    "port": 8081,
    "cookie": "token=1",
    "proxies": [{
        "host": "www.server1-domain.com",
        "https": true,
        "path": "/pathPrefex/",
        "headers": {
            "host": "www.server1-domain.com",
            "origin": "https://www.server1-domain.com",
            "referer": "https://www.server1-domain.com/index.html"
        }
    }, {
        "host": "www.server0-domain.com",
        "https": true,
        "headers": {
            "host": "www.server0-domain.com",
            "origin": "https://www.server0-domain.com",
            "referer": "https://www.server0-domain.com/index.html"
        }
    }]
},
...

With this config, we create a proxy server listening on 8081 port. This proxy server will delegate any request starts /pathPrefex/ to https://www.server1-domain.com, and delegate any other request to https://www.server0-domain.com. These requests send by proxy server will take the cookie and headers set in config.

port

Port number proxy server listening.

cookie

Cookie for request send to back-end server.

proxies

An array to define each proxy. You must take the proxy with path in front the proxy without path.

proxy.host

The back-end server domain.

proxy.https

Use https or not.

proxy.headers

Any headers you wan't to feed back-end server.

proxy.path

Path prefex, only the request starts with this config will be delegated by this proxy.

[proxy.cookie]

Cookie for request send to this back-end server. If not set, will use the outer cookie config.