spark-monitor
Version:
A friendly user interface for monitoring Apache Spark
35 lines (27 loc) • 1.22 kB
JavaScript
const httpProxy = require('http-proxy')
// const SocksAgent = require('socks5-http-client/lib/Agent')
module.exports = ({livyHost='localhost', livyPort=8998}={}) =>
// Reverse proxy which enables cors for livy api
httpProxy.createProxyServer({
target: `http://${livyHost}:${livyPort}`
// Rewrite dest path according to livy (/api/path -> /path)
}).on('proxyReq', (proxyReq, req, res, options) => {
proxyReq.path = proxyReq.path.replace(/^\/api/, '')
// Add cors headers to response
}).on('proxyRes', (proxyRes, req, res, options) => {
if(req.method == 'OPTIONS'){
proxyRes.statusCode = 200
proxyRes.statusMessage = 'OK'
}
res.setHeader('Access-Control-Allow-Credentials', 'true')
res.setHeader('Access-Control-Allow-Headers', '*')
res.setHeader('Access-Control-Allow-Methods', '*')
res.setHeader('Access-Control-Allow-Origin', '*')
res.setHeader('Access-Control-Max-Age', 86400)
}).on('error', error => {
console.error(error)
})
// const proxy = httpProxy.createProxyServer({
// target: `http://${process.env.LIVY_HOST||'localhost'}:${process.env.LIVY_PORT||9889}`,
// agent: new SocksAgent({socksHost: 'localhost', socksPort: 10080})
// }).listen(process.env.PROXY_PORT||8997)