UNPKG

spark-monitor

Version:

A friendly user interface for monitoring Apache Spark

35 lines (27 loc) 1.22 kB
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)