Vite代理服务后台获取真实IP

在Vite的代理中将客户端真实的IP传递给后台:

export default defineConfig({
  server: {
    proxy: {
      '/api': {
        target: 'http://backend-server.com',
        changeOrigin: true,
        configure: (proxy, options) => {
          proxy.on('proxyReq', (proxyReq, req) => {
            // 添加真实客户端IP到请求头
            proxyReq.setHeader('X-Forwarded-For', req.socket.remoteAddress)
            proxyReq.setHeader('X-Real-IP', req.socket.remoteAddress)
          })
        }
      }
    }
  }
})

实现原理:

  1. 使用proxyReq事件钩子在代理请求发出前修改请求头
  2. req.socket.remoteAddress获取客户端真实IP
  3. 通过X-Forwarded-For和X-Real-IP两个标准头字段传递IP
  4. changeOrigin: true确保Host头正确传递

评论

等风等雨等你来