Saya memiliki aplikasi web yang berjalan di Amazon EC2. Ia mendengarkan pada port 9898.
Saya dapat mengaksesnya dengan memasukkan alamat ip dan nomor port.
misalnya 1.2.3.4:9898
Namun, yang ingin saya lakukan adalah tidak harus memasukkan nomor port.
Meneliti ini, sepertinya port forwarding mungkin solusinya - yaitu meneruskan permintaan http yang diterima pada port default (80) ke port non-standar saya (9898).
Apakah ini cara yang benar untuk pergi? Jika demikian, bagaimana cara mengatur ini di EC2?
Jika tidak, lalu bagaimana saya mencapai apa yang saya inginkan?
Terima kasih sebelumnya atas bantuannya.
Memperbarui
Saya seharusnya menyebutkan contoh EC2 adalah Windows Server 2012 AMI.
Jawaban:
Cara termudah untuk melakukan ini tanpa menginstal sendiri sesuatu adalah meletakkan Amazon Elastic Load Balancer di depan instance. Ini memungkinkan Anda untuk meneruskan port sesuai keinginan Anda.
sumber
Anda memiliki dua opsi.
1) Atur proxy terbalik untuk meneruskan permintaan HTTP (dengan asumsi itu HTTP) ke port lain.
Seharusnya sesederhana: Instal apache, aktifkan modul proxy_http, letakkan sesuatu seperti:
2) Mengatur Tabel IP untuk meneruskan paket .
sumber
karena saya melihat komentar tentang menggunakan iptables, saya akan membagikan pengalaman saya di ec2 linux. Saya menemukan artikel yang bagus tentang penerusan porta untuk Node.js. Jika Anda melewatkan instruksi tentang pengeditan sysctl.conf Anda melihat instruksi penerusan. Prosedur Linux saya sedikit bervariasi dari Ubuntu. Artikelnya adalah: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2
Pekerjaan dilakukan melalui ssh. Satu-satunya gotcha yang saya temui adalah saya pre-routed dua kali, tanpa iptables flushing di antara, dan aplikasi web saya tidak terlihat sampai saya memerah dan mengisi ulang. Saya tahu itu gambar yang buruk untuk disimpulkan, maaf.
sumber