Come impostare il port forwarding su Amazon EC2


16

Ho un'applicazione web in esecuzione su Amazon EC2. Ascolta sulla porta 9898.

Posso accedervi inserendo l'indirizzo IP e il numero di porta.

ad es. 1.2.3.4:9898

Tuttavia, ciò che mi piacerebbe davvero poter fare è non dover inserire il numero di porta.

Effettuando questa ricerca, sembra che il port forwarding potrebbe essere la soluzione, ovvero inoltra le richieste HTTP ricevute sulla porta predefinita (80) alla mia porta non standard (9898).

È questo il modo corretto di procedere? In tal caso, come posso impostarlo su EC2?

In caso contrario, come posso ottenere ciò che voglio?

Grazie in anticipo per qualsiasi aiuto.

Aggiornare

Avrei dovuto menzionare che l'istanza EC2 è un AMI di Windows Server 2012.


Dovresti avere qualcosa davanti al tuo server come HAProxy per inoltrare le richieste ... o usare iptables. Amazon non supporta il port forwarding.
Nathan C,

Risposte:


10

Il modo più semplice per farlo senza installare qualcosa da soli è mettere un bilanciamento del carico Amazon Elastic davanti all'istanza. Questi ti consentono di inoltrare le porte come desideri.


Ho provato il tuo suggerimento ma non riesco a far funzionare il controllo ping.
ksl

ceejayoz ha ragione ELB è il modo di farlo. Usa TCP controlla se HTTP non funziona. Mi dispiace non abbastanza reputazione per commentare.
Pestouille,

Ciao, per favore, puoi elaborare.
ksl

Prova a consentire ICMP su Windows Server Firewall dagli indirizzi ELB
Tom O'Connor,

Il firewall è già configurato per impostazione predefinita per consentire tutto il traffico ICMP V4.
ksl,

6

Hai due opzioni.

1) Configurare un proxy inverso per inoltrare le richieste HTTP (supponendo che sia HTTP) a una porta diversa.

Dovrebbe essere semplice come: Installa apache, abilita il modulo proxy_http, metti qualcosa come:

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

2) Configurare le tabelle IP per inoltrare i pacchetti .


Avrei dovuto dichiarare che l'istanza EC2 è una AMI di Windows Server 2012. Non sono stato in grado di capire qual è l'equivalente di Windows delle tabelle IP.
ksl,


Grazie per la risposta. Ho provato ad usare netsh come mi hai suggerito, ma non riesco a farlo funzionare. Ho inoltrato le richieste http sulla porta 80 agli indirizzi IP pubblici e privati ​​della mia istanza EC2.
ksl,

-3

poiché ho visto il commento sull'uso di iptables, condividerò la mia esperienza in ec2 linux. Ho trovato un eccellente articolo sulle porte di inoltro per Node.js. Se salti alle istruzioni sulla modifica di sysctl.conf, visualizzerai le istruzioni di inoltro. La mia procedura Linux è leggermente diversa da Ubuntu. L'articolo è: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2

Il lavoro viene svolto tramite ssh. L'unico gotcha in cui mi sono imbattuto è stato pre-instradato due volte, senza svuotare iptables tra, e la mia app web non era visibile fino a quando non ho scaricato e ricaricato. So che è un'immagine terribile per concludere, scusa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.