Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

470
Visualizações
Habilitar Cloudflare en mi servidor web Node.js/Express/Socket.io lo rompe. ¿Cómo depurar?

Estoy desarrollando un servidor web node.js que ejecuta express/express-session/passport para autenticación y socket.io para websockets. El servidor web en sí tiene un proxy inverso con Nginx.

Todo parece funcionar bien y el servidor puede capturar correctamente la información de los clientes, pero cuando hago un proxy del sitio detrás de Cloudflare, se atasca en la página de autenticación.

 app.get('/', function (req, res) { //successfully authenticated if (req.session && req.session.passport && req.session.passport.user) { res.sendFile('index.html', { root: 'client/html' }); console.log('Index Served'); } //request authentication else { res.sendFile('auth.html', { root: 'client/html' }); console.log('Auth Served'); }; });

Sin embargo, obtengo "Índice servido" en la consola, por lo que la autenticación parece funcionar bien detrás de Cloudflare. Incluso puedo ver la información de los jugadores en la consola. Simplemente no veo index.html: solo obtengo auth.html aunque "Índice servido" se envía a la consola, ¿entonces tal vez sea un problema expreso?

Tengo ambos app.set('trust proxy', true); y el proxy establecido en verdadero en los parámetros de la sesión.

Lo siguiente no parece ejecutarse cuando hago proxy del servidor, ya que solo veo los siguientes registros de la consola cuando no lo tengo proxy:

 //dependency: websocket var io = require('socket.io')(server); io.use(function(socket, next){ console.log('1 ' + socket); socket.client.request.originalUrl = socket.client.request.url; cookieParse(socket.client.request, socket.client.request.res, next); }); io.use(function(socket, next){ console.log('2 ' + socket); socket.client.request.originalUrl = socket.client.request.url; sessionAuthentication(socket.client.request, socket.client.request.res, next); }); io.use(function(socket, next){ console.log('3 ' + socket); passportInit(socket.client.request, socket.client.request.res, next); }); io.use(function(socket, next){ console.log('4 ' + socket); passportSession(socket.client.request, socket.client.request.res, next); });

Tengo el servidor web ejecutándose en el puerto 2052, que según Cloudflare es un puerto adecuado para websockets: https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/

Realmente no tengo una buena idea de lo que está pasando, así que quiero saber qué puedo hacer para depurarlo. Revisé los registros de acceso y error de Nginx y no obtuve nada útil. ¿Hay alguna manera de depurar socket.io de alguna manera o tal vez una sesión rápida?

El archivo server.js completo se puede ver aquí: https://github.com/Dan-Mizu/Project-Virtual-Pond/blob/update/server/Server.js

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda