AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1131643
Accepted
Lubos Chlebicki
Lubos Chlebicki
Asked: 2023-05-22 15:23:23 +0800 CST2023-05-22 15:23:23 +0800 CST 2023-05-22 15:23:23 +0800 CST

Node.js: o IP gerado pelo meu domínio de hospedagem na web está "não disponível" (não é possível configurar um servidor https)

  • 772

Estou criando um servidor HTTPS brutalmente simples em render.com usando Node.js, que atualiza para comunicação WebSocket. Aqui está o código:

    const https = require('https');
    
    // Create an HTTP server
    const server = https.createServer((req, res) => {
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end('okay');
    });
    server.on('upgrade', (req, socket, head) => {
      socket.write('HTTP/1.1 101 Web Socket Protocol Handshake\r\n' +
                   'Upgrade: WebSocket\r\n' +
                   'Connection: Upgrade\r\n' +
                   '\r\n');
    
      socket.pipe(socket); // echo back
    });
    
    // Now that server is running
    server.listen(443, 'test-srv-676.onrender.com', () => {
    
      // make a request
      const options = {
        port: 443,
        Host: 'test-srv-676.onrender.com',
        headers: {
          'Connection': 'Upgrade',
          'Upgrade': 'websocket',
        },
      };

  const req = http.request(options);
  req.end();

  req.on('upgrade', (res, socket, upgradeHead) => {
    console.log('got upgraded!');
    socket.end();
  });
}); 

Instantaneamente, recebo um erro: o servidor tenta escutar em um IP gerado a partir do domínio 'test-srv-676.onrender.com', mas está "não disponível". A configuração do meu servidor HTTPS pode estar com defeito, mas não sei. O erro lançado é:

Starting service with 'node server.js'
May 22 09:03:18 AM  events.js:353
May 22 09:03:18 AM        throw er; // Unhandled 'error' event
May 22 09:03:18 AM        ^
May 22 09:03:18 AM  
May 22 09:03:18 AM  Error: listen EADDRNOTAVAIL: address not available 216.24.57.3:443
May 22 09:03:18 AM      at Server.setupListenHandle [as _listen2] (net.js:1301:21)
May 22 09:03:18 AM      at listenInCluster (net.js:1366:12)
May 22 09:03:18 AM      at doListen (net.js:1503:7)
May 22 09:03:18 AM      at processTicksAndRejections (internal/process/task_queues.js:83:21)
May 22 09:03:18 AM  Emitted 'error' event on Server instance at:
May 22 09:03:18 AM      at emitErrorNT (net.js:1345:8)
May 22 09:03:18 AM      at processTicksAndRejections (internal/process/task_queues.js:82:21) {
May 22 09:03:18 AM    code: 'EADDRNOTAVAIL',
May 22 09:03:18 AM    errno: -99,
May 22 09:03:18 AM    syscall: 'listen',
May 22 09:03:18 AM    address: '216.24.57.3',
May 22 09:03:18 AM    port: 443
May 22 09:03:18 AM  }
ip
  • 2 2 respostas
  • 36 Views

2 respostas

  • Voted
  1. Best Answer
    hardillb
    2023-05-22T15:36:29+08:002023-05-22T15:36:29+08:00

    Você só pode vincular um servidor a um endereço IP vinculado a uma interface local na máquina em que o código está sendo executado.

    Nesse caso, suponho que seu provedor de hospedagem esteja usando uma forma de proxy HTTP/HTTPS em que o endereço IP para o qual o nome do host fornecido resolve é atribuído a uma máquina voltada para a Internet e, em seguida, o tráfego é encaminhado para sua máquina.

    Substitua 'test-srv-676.onrender.com'por '0.0.0.0'para vincular a todos os endereços em sua máquina, que aceitarão conexões da máquina upstream.

    Provavelmente, você também desejará ouvir httpnão, httpspois parece não estar fornecendo nenhum certificado TLS localmente, portanto, espero que o proxy esteja fazendo a terminação HTTPS/TLS para você.

    • 3
  2. Gerald Schneider
    2023-05-22T15:32:57+08:002023-05-22T15:32:57+08:00

    O servidor provavelmente está usando um endereço IP flutuante que não está configurado diretamente no servidor, mas roteado para o endereço interno real do seu servidor.

    Verifique o endereço IP real do seu servidor ou ligue-se 0.0.0.0a todas as interfaces.

    • 1

relate perguntas

  • Qual é o utilitário de linha de comando no Windows para fazer uma pesquisa reversa de DNS?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve