77bed5122f
- Update setupProxy.js to forward X-Real-IP and X-Forwarded-For headers - Improve IP detection in backend middleware to prioritize X-Real-IP - Add debug logging for IP detection in development mode - Update .env.example with clearer IP configuration examples - Enable debug logging in docker-compose.dev.yml This fixes the issue where Docker network IPs (172.20.x.x) were being detected instead of the real client IP addresses. To fix IP restrictions, update your .env file: ALLOWED_IPS=10.30.30.0/24,<your-other-ips> 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
const { createProxyMiddleware } = require('http-proxy-middleware');
|
|
|
|
module.exports = function(app) {
|
|
app.use(
|
|
'/api',
|
|
createProxyMiddleware({
|
|
target: process.env.BACKEND_URL || 'http://backend:7510',
|
|
changeOrigin: true,
|
|
logLevel: 'debug',
|
|
// Forward the real IP address
|
|
onProxyReq: (proxyReq, req, res) => {
|
|
// Get the real client IP
|
|
const clientIp = req.headers['x-forwarded-for'] ||
|
|
req.connection.remoteAddress ||
|
|
req.socket.remoteAddress ||
|
|
req.connection.socket.remoteAddress;
|
|
|
|
// Set the forwarded headers
|
|
proxyReq.setHeader('X-Forwarded-For', clientIp);
|
|
proxyReq.setHeader('X-Real-IP', clientIp);
|
|
proxyReq.setHeader('X-Forwarded-Proto', req.protocol);
|
|
proxyReq.setHeader('X-Forwarded-Host', req.headers.host);
|
|
},
|
|
onError: (err, req, res) => {
|
|
console.error('Proxy Error:', err);
|
|
res.status(500).json({ error: 'Proxy Error', message: err.message });
|
|
}
|
|
})
|
|
);
|
|
}; |