const proxy = require('express-http-proxy') const use = true const base_url = process.env.VUE_APP_BASE_API const minioKey = process.env.VUE_APP_MINIO.replace(base_url, '') const thumbnailKey = process.env.VUE_APP_THUMBNAIL.replace(base_url, '') const gate = 'http://10.180.88.84:8093' module.exports = { register (router) { if (use) { router.use('/auth', createProxy(process.env.VUE_APP_KEYCLOAK_OPTIONS_URL)) router.use(minioKey, createProxy(gate)) router.use(thumbnailKey, createThumbnailProxy(gate)) router.use('/', createProxy(gate, '/prod-api')) } } } function createProxy (to, replace = '') { return proxy(to, { parseReqBody: false, proxyReqPathResolver (req) { const url = replace === false ? req.url : `${req.baseUrl.replace(base_url, replace)}${req.url}` console.log(`proxy ${url} to ${to}`) return url } }) } function createThumbnailProxy (to) { return proxy(to, { parseReqBody: false, proxyReqPathResolver (req) { const url = `${thumbnailKey}${req.url.replace(new RegExp(`http.*${minioKey}`), `${gate}${minioKey}`)}` console.log(`thumbnail ${url} to ${to}`) return url } }) }