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-server
Notice
- Dont support
https
yet - We suggest this is only be used in develop mode.Don't use as a production.
how to set
config.js
Edit exapmle:
// Listen portexportsport = processenvPORT || 3000;// Log request message into consoleexportsenable_logging = true;// The lenght of time we'll wait for a proxy server to respond before timing out.exportsproxy_request_timeout_ms = 10000; // Forwarding settings//Check if the url to be forward is match the pattern "check",if so forward it to "url".exportsforwards = 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 , httpsexportselse_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/getFoo
is"/tif/api/getFoo"
- remove macthed pattern
^/tif
in 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.