Запуск приложения nodejs на сервере Centos7 apache

#node.js #apache #meteor #cpanel #centos7

#node.js #apache #метеор #cpanel #centos7

Вопрос:

Я пытаюсь запустить веб-приложение node (созданное с помощью meteor) на сервере Centos7 под управлением EasyApache4 с WHM cPanel. Я пытаюсь запустить его на поддомене одного из наших основных веб-сайтов на порту 8080.

При переходе к поддомену на порту 8080 время просто истекает, но вы можете видеть HTML-код при использовании curl для доступа к нему.

У кого-нибудь есть какие-либо идеи, почему оно не будет работать через браузер, а также как я могу сделать так, чтобы оно выглядело так, будто оно запускается прямо из поддомена, вместо того, чтобы переходить непосредственно к порту.

Редактировать

Ниже приведен curl, который мы используем для просмотра html

 curl http://subdomain.site.com:8080
  

Выполнение этого возвращает html без проблем

Комментарии:

1. Можете ли вы опубликовать точную строку, которую вы используете с помощью curl (маскируя имя хоста и / или любые учетные данные, конечно)

2. Посмотрите сетевой журнал в Chrome, чтобы узнать, что еще он извлекает. Возможно, загрузка тела работает, но все последующие выборки завершаются неудачно, что приведет к такому поведению. Является ли этот порт общим для других веб-сайтов? Если это так, это не сработает. Meteor должен быть на своем собственном порту. Его можно настроить для запуска с обратным прокси, если вы хотите поделиться портом

3. Больше ничего не появляется в сетевом журнале. Нет, порт не используется совместно — есть ли порт, который вы бы предложили? Спасибо

4. Возможно, причина вашей работы curl в том, что вы не отправляете какой-либо заголовок и не принимаете перенаправления так же, как это делает ваш браузер. Попробуйте просмотреть заголовки, отправленные из вашего браузера, в Chrome devtools

5. При просмотре заголовков запроса отображаются только предварительные заголовки. Спасибо

Ответ №1:

Сегодня была та же проблема. Я использую сервер Memset Centos7 с WHM / cPanel под управлением EasyApache 4.

Перепробовав все, что я мог придумать, я понял, что у меня была базовая настройка брандмауэра, которая закрывала все порты, которых не было в списке. После добавления порта 8080 это сработало.

Использовал это:

 sudo iptables -I INPUT 1 -i   -p tcp --dport 8080 -j ACCEPT
  

Я не уверен на 100%, насколько это безопасно, поскольку я все еще исследую.