Доступ к localhost не проблема, так как вы уже прослушиваете * (что означает все интерфейсы). Чтобы любой мог получить доступ к вашему серверу с именем «example.com», он должен разрешить IP-адрес, который достигнет вашего сервера с клиентского компьютера. Что это значит, зависит от вашей среды.
Для тестирования, если вы пытаетесь получить доступ к сайту с того же компьютера, на котором работает node.js (который подходит только для тестирования), я предлагаю добавить адрес обратной связи в системный DNS-кэш имен. /etc /hosts в unix и Windows\system32\drivers\etc\hosts в большинстве окон. Как уже говорилось, это подходит только для тестирования: добавьте строку: 127.0.0.1 example.com
в конец файла на отдельной строке.
Для производственного использования, чтобы другие люди могли получить доступ к вашему сайту, вам нужен поставщик DNS (службы доменных имен), чтобы связать ваше имя с вашим общедоступным IP-адресом. Это будет стоить около 10 долларов в год. Вам также нужен общедоступный IP-адрес, который не блокируется испами других людей, и желательно тот, который меняется не очень часто. Это может варьироваться от упрощенного перенаправления (не рекомендуется, если только для ограничений пропускной способности и доступности) до небольших хостинговых приложений (от 25 до 100 долларов в год и выше, в зависимости от пространства и вычислительных потребностей).
Обе эти услуги предлагаются облачными провайдерами, просто ищите услуги облачного хостинга. Популярные провайдеры включают в себя веб-сервисы Go Daddy и Amazon. У меня был лучший опыт с AWS.
Кроме того, выставление nodejs публичному ip, вероятно, не лучшая идея. Кроме того, я предлагаю вам обратиться к некоторому промежуточному программному обеспечению, например apache или nginx, чтобы обернуть ваше приложение во что-то, что слушает традиционные http-запросы.
Редактировать в ответ на комментарий:
В этом случае вы хотите определить частичный путь URL в ваших конфигурациях apache. Это называется обратным прокси-сервером. Это означает, что вы определяете правило, для которого URL / запросы должны перенаправляться (проксироваться) в node.js, и Apache направит их туда за вами. Смотрите Apache Docs здесь и этот вопрос о сбое сервера:
https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html
https://serverfault.com/questions/497856/using-an-apache-virtualhost-to-access-a-node-js-instance-on-the-same-server
Обратите внимание, что документы Apache, как правило, предполагают, что серверное приложение работает на другом сервере, но оно работает для localhost. Вы хотите директивы proxypass и proxypassreverse.