Como configurar o encaminhamento de porta no Amazon EC2


16

Eu tenho um aplicativo Web em execução no Amazon EC2. Ele escuta na porta 9898.

Eu posso acessá-lo inserindo o endereço IP e o número da porta.

por exemplo, 1.2.3.4:9898

No entanto, o que eu realmente gostaria de fazer é não precisar digitar o número da porta.

Pesquisando isso, parece que o encaminhamento de porta pode ser a solução - ou seja, encaminhar solicitações HTTP recebidas na porta padrão (80) para minha porta não padrão (9898).

Este é o caminho correto a seguir? Em caso afirmativo, como faço para configurar isso no EC2?

Caso contrário, como faço para conseguir o que quero?

Agradecemos antecipadamente por qualquer ajuda.

Atualizar

Eu deveria ter mencionado que a instância do EC2 é uma AMI do Windows Server 2012.


Você precisaria ter algo na frente do servidor, como o HAProxy, para encaminhar solicitações ... ou usar o iptables. A Amazon não suporta encaminhamento de porta.
Nathan C

Respostas:


10

A maneira mais fácil de fazer isso sem instalar algo é colocar um Amazon Elastic Load Balancer na frente da instância. Isso permite que você encaminhe portas como pretendido.


Tentei sua sugestão, mas não consigo fazer com que a verificação de ping funcione.
ksl

ceejayoz está correto ELB é a maneira de fazê-lo. Use a verificação TCP se o HTTP não estiver funcionando. Desculpe, não há reputação suficiente para comentar.
Pestouille

Oi, por favor, você pode elaborar.
ksl

Tente permitir o ICMP no Firewall do Windows Server a partir dos endereços ELB
Tom O'Connor

O firewall já está configurado por padrão para permitir todo o tráfego ICMP V4.
ksl

6

Você tem duas opções.

1) Configure um proxy reverso para encaminhar as solicitações HTTP (assumindo que seja HTTP) para uma porta diferente.

Deve ser tão simples quanto: Instale o apache, ative o módulo proxy_http, coloque algo como:

ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
    Order allow,deny
    Allow from all
</Proxy>
ProxyPass / http://localhost:9898/
ProxyPassReverse / http://localhost:9898/

2) Configure as tabelas de IP para encaminhar os pacotes .


Eu deveria ter declarado que a instância do EC2 é uma AMI do Windows Server 2012. Não consegui descobrir qual é o equivalente do Windows às tabelas de IP.
ksl


Obrigado pela resposta. Tentei usar o netsh como você sugeriu, mas não consigo fazê-lo funcionar. Encaminhei solicitações http na porta 80 para os endereços IP públicos e privados da minha instância do EC2.
ksl

-3

porque vi o comentário sobre o uso do iptables, vou compartilhar minha experiência no ec2 linux. Encontrei um excelente artigo sobre o encaminhamento de portas para o Node.js. Se você pular as instruções para editar o sysctl.conf, verá as instruções de encaminhamento. Meu procedimento Linux variou ligeiramente do Ubuntu. Artigo é: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

O trabalho é feito via ssh. O único problema que encontrei foi o pré-roteamento duas vezes, sem liberar as tabelas de ip entre elas, e meu aplicativo da web não estava visível até que eu liberasse e recarregasse. Eu sei que é uma imagem terrível para concluir, desculpe.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.