У меня есть веб-приложение, работающее на Amazon EC2. Он прослушивает порт 9898.
Я могу получить к нему доступ, введя IP-адрес и номер порта.
например, 1.2.3.4:9898
Однако то, что я действительно хотел бы сделать, это не вводить номер порта.
Исследуя это, похоже, что переадресация портов может быть решением - то есть пересылать http-запросы, полученные через порт по умолчанию (80), на мой нестандартный порт (9898).
Это правильный путь? Если да, то как мне установить это на EC2?
Если нет, то как мне добиться того, чего я хочу?
Заранее благодарю за любую помощь.
Обновить
Я должен был упомянуть, что экземпляр EC2 - это Windows Server 2012 AMI.
Ответы:
Самым простым способом сделать это, не устанавливая что-либо самостоятельно, является установка Amazon Elastic Load Balancer перед экземпляром. Это позволяет вам перенаправлять порты так, как вы собираетесь.
источник
У вас есть два варианта.
1) Настройте обратный прокси-сервер для пересылки HTTP-запросов (при условии, что это HTTP) на другой порт.
Это должно быть так просто: установить apache, включить модуль proxy_http, поставить что-то вроде:
2) Настройте таблицы IP для пересылки пакетов .
источник
потому что я видел комментарий по использованию iptables, я поделюсь своим опытом в ec2 linux. Я нашел отличную статью о переадресации портов для Node.js. Если вы пропустите инструкции по редактированию sysctl.conf, вы увидите инструкции по пересылке. Моя процедура Linux немного отличалась от Ubuntu. Статья: http://www.lauradhamilton.com/how-to-set-up-a-nodejs-web-server-on-amazon-ec2
Работа сделана через ssh. Единственная ошибка, с которой я столкнулся, заключалась в том, что я дважды направлял маршрут, не сбрасывая между ними iptables, и мое веб-приложение не было видно, пока я не сбросил и не перезагрузил. Я знаю, что это ужасное изображение, с которым я хочу закончить, извините.
источник