penambahan docker dan lain lain untuk penyesuaian docker
This commit is contained in:
No files matched your search
@@ -0,0 +1,37 @@
|
||||
import { defineEventHandler, proxyRequest } from 'h3'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const config = useRuntimeConfig()
|
||||
const targetBase = config.public.externalApiBaseUrl || 'http://10.10.123.135:8084/api/v1'
|
||||
|
||||
// Extract path suffix after /stats-api
|
||||
const suffix = event.path.replace(/^\/stats-api/, '')
|
||||
const targetUrl = `${targetBase}${suffix}`
|
||||
|
||||
// Clone request headers and overwrite Host/Origin/Referer with backend-whitelisted values
|
||||
const headers = { ...event.node.req.headers } as Record<string, string>
|
||||
|
||||
// Extract backend target host
|
||||
try {
|
||||
const urlObj = new URL(targetBase)
|
||||
headers.host = urlObj.host
|
||||
} catch (e) {
|
||||
headers.host = '10.10.123.135:8084'
|
||||
}
|
||||
|
||||
// Spoof the origin and referer to match the server's trusted/whitelisted client origin
|
||||
headers.origin = 'http://10.10.150.175:3000'
|
||||
headers.referer = 'http://10.10.150.175:3000/'
|
||||
|
||||
console.log(`[Proxy Stats-API] Forwarding ${event.node.req.method} to: ${targetUrl}`)
|
||||
console.log(`[Proxy Stats-API] Headers - Host: ${headers.host}, Origin: ${headers.origin}`)
|
||||
|
||||
try {
|
||||
return await proxyRequest(event, targetUrl, {
|
||||
headers
|
||||
})
|
||||
} catch (error: any) {
|
||||
console.error(`[Proxy Stats-API] Error forwarding to ${targetUrl}:`, error)
|
||||
throw error
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user