proxy.js 1.3 KB

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