multi-proxy-server
v1.0.3
Published
A simple forward proxy server for processing API calls to servers that don't send CORS headers or support HTTPS.
Readme
MultiProxyServer
In some case,a local server would be setup for developing,but sometime remote server APIs can't be called successfully due to
CROS header is not set
http/https mismatch
remote server may ask for cookies to be set.(which is CROS too)
what we do
A multi proxy server that can make several servers in each different domain act as a single server.
It forwards request for processing API calls to servers that don't send CORS headers or support HTTPS.
install
npm install multi-proxy-serverNotice
- Dont support
httpsyet - We suggest this is only be used in develop mode.Don't use as a production.
how to set
Edit config.js
exapmle:
// Listen port
exports.port = process.env.PORT || 3000;
// Log request message into console
exports.enable_logging = true;
// The lenght of time we'll wait for a proxy server to respond before timing out.
exports.proxy_request_timeout_ms = 10000;
// Forwarding settings
//Check if the url to be forward is match the pattern "check",if so forward it to "url".
exports.forwards = [
{
check : /^\/tif/,
url : "https://somedomain.com/tif"
},
{
check : /^\/dev/,
url : "http://127.0.0.1:8888/dev"
},{
check : /^\/app/,
url : "http://127.0.0.1:8080/dest/app"
}
];
// If none of the "forwards" is matched,this become the forwarding address.
// http , https
exports.else_forward_url = "http://127.0.0.1:8080/dest";This config setting will listen to port 3000.
When request url http://127.0.0.1:3000/tif/api/getFoo was send.multi-proxy-server will forward it to https://somedomain.com/tif/api/getFoo,which is defined in config.js, and add CROS headers.
notice
The way we determin forwarding url.
- The url_path of
http://127.0.0.1:3000/tif/api/getFoois"/tif/api/getFoo" - remove macthed pattern
^/tifin url_path - the rest part is
"/api/getFoo" - append rest path to
"forwards.url" - it become
https://somedomain.com/tif/api/getFoo
thanks for
This proxy server is based on thingproxy,and many modification was made to fit and get new features.
