Allow pomelo to obtain the real user IP of the reverse proxy websockets

/node_modules/pomelo/lib/connectors

turn up

var Socket = function (id, socket) {

Add a realIp attribute to the remoteAddress object, and find the real IP header of the user sent by the reverse proxy from the handshake request header of the ws object

// ws mode, filter useless IPV6 headers before IPV4
var ip = socket._socket.remoteAddress.replace (/ :: ffff: /, '');
var realIp = socket.upgradeReq.headers ['x-forwarded-for' ] || socket.upgradeReq.headers ['x-real-ip'] || ip
this.remoteAddress = {
ip: ip,
port: socket._socket.remotePort,
realIp: realIp
};

/node_modules/pomelo/lib/common/service

Then modify the getClientAddressBySessionId method of pomelo's sessionServer class

 

Guess you like

Origin www.cnblogs.com/xiami2046/p/12676086.html