proxy.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const proxy = require('express-http-proxy')
  2. const use = true
  3. const base_url = process.env.VUE_APP_BASE_API
  4. const minioKey = process.env.VUE_APP_MINIO.replace(base_url, '')
  5. const thumbnailKey = process.env.VUE_APP_THUMBNAIL.replace(base_url, '')
  6. const gate = 'http://10.180.88.84:8093'
  7. module.exports = {
  8. register (router) {
  9. if (use) {
  10. router.use('/auth', createProxy(process.env.VUE_APP_KEYCLOAK_OPTIONS_URL))
  11. router.use(minioKey, createProxy(gate))
  12. router.use(thumbnailKey, createThumbnailProxy(gate))
  13. router.use('/', createProxy(gate, '/prod-api'))
  14. }
  15. }
  16. }
  17. function createProxy (to, replace = '') {
  18. return proxy(to, {
  19. parseReqBody: false,
  20. proxyReqPathResolver (req) {
  21. const url = replace === false ? req.url : `${req.baseUrl.replace(base_url, replace)}${req.url}`
  22. console.log(`proxy ${url} to ${to}`)
  23. return url
  24. }
  25. })
  26. }
  27. function createThumbnailProxy (to) {
  28. return proxy(to, {
  29. parseReqBody: false,
  30. proxyReqPathResolver (req) {
  31. const url = `${thumbnailKey}${req.url.replace(new RegExp(`http.*${minioKey}`), `${gate}${minioKey}`)}`
  32. console.log(`thumbnail ${url} to ${to}`)
  33. return url
  34. }
  35. })
  36. }