9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305
1

Новичок Nodejs как на хостинге запустить сервер?

07.07.2016, 14:29. Показов 14762. Ответов 7
Метки нет (Все метки)

Доброго времени суток!
Я чайник и только начал изучать Nodejs.
Ситуация такая у меня есть под домен на платном хостинге.
Хочу запустить сервер с класcическим результатом: Hello World!
На хостинге установлен Nodejs
На хостинге есть папка sj в ней папка public_html
Например: если закину в эту папку index.html с содержанием:
HTML5
1
2
3
4
5
6
7
8
<html>
<head>
     <title>Hello World!</title>
</head>
<body>
     Hello World!
</body>
</html>
После чего в браузере набираю [адрес сервера] и получаю: Hello World!

Вопрос: как с помощью Nodejs выдать по адресу [сервера]: Hello World! ??????

По урока создаю скрипт на хостинге server.js
Javascript
1
2
3
4
5
6
7
8
var http = require('http');
 
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8080);
 
console.log('Server running on port 8080.');
кладу скрипт в папку sj/public_html
подключаюсь через SSH, ввожу: node sj/public_html/server.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
~ $ node sj/public_html/server.js
Server running on port 8080.
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (util.js:746:11)
    at Server._listen2 (net.js:1156:14)
    at listen (net.js:1182:10)
    at Server.listen (net.js:1267:5)
    at Object.<anonymous> (/home/i/dom/sj/public_html/server.js:6:4)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
После чего иду по адресу [сервера] и ничего не вижу, никакого Hello World ((((((((((((

Для проверки, установил Nodejs себе на ПК и сделал аналогично варианту хостинга
создал server.js файл
Javascript
1
2
3
4
5
6
7
8
var http = require('http');
 
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8080);
 
console.log('Server running on port 8080.');
Сакинул его на C:/
запустил cmd и пишу: node c:/server.js
Запускаю браузер и захожу на http://localhost:8080
Да, я вижу Hello World!

Но как же я могу увидеть Hello World! используя хостинг и Nodejs, пройдя по адресу под домена ???
Помогите пожалуйста разобраться
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2016, 14:29
Ответы с готовыми решениями:

Как запустить сервер (хост) на хостинге?
Есть сервер(я не знаю как назвать то приложение которое запускает ServiceHost). Есть интернет...

Как запустить сессию в nodejs, express?
Здравствуйте, и ещё один вопрос. Как осуществить работу сессий в nodejs и фрэймворком express? ...

Ошибка nodejs приложения на хостинге
Здравствуйте, столкнулся с такой вот проблемой, не работает nodejs приложение...

Для чего нужен iisnode при хостинге nodejs под IIS?
Подскажите, пожалуйста. Я всегда хостил ноду на линукс-машинах и не понимаю этой проблемы. На одном...

7
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.07.2016, 19:27 2
замените
Javascript
1
}).listen(8080);
на
Javascript
1
}).listen(80);
ошибка гласит, что порт уже занят

для того, чтобы отрисовался ваш файл нужно использовать другой код...

Добавлено через 4 минуты
а ещё нужно настроить проксирование на вашем хостинге...
1
9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305
08.07.2016, 14:57  [ТС] 3
BANO, 80 выдал ту же ошибку, очевидно порт тоже занят.
исправил на .listen(3060); и да ошибка ушла,
[JS]~ $ node sj/public_html/server.js
Server running on port 3060[JS]
но ввожу в ьраузер адрес под домена sj.....
и ничего нет
HTML5
1
2
3
4
5
6
7
8
9
10
Access forbidden!
 
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
 
If you think this is a server error, please contact the webmaster.
 
Error 403
[COLOR="Red"][adres server][/COLOR]
Fri Jul 8 14:56:19 2016
Apache/2.2.29 (Gentoo) PHP/5.4.45-pl0-gentoo
Пожалуйста дайте пожалуйста ссылочку или ключевые слова по которым искать
0
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.07.2016, 14:59 4
Granfury, я же говорю, там поддомен не поможет, надо проксирование настраивать
0
9 / 9 / 5
Регистрация: 22.04.2015
Сообщений: 305
11.08.2016, 14:34  [ТС] 5
Пожалуйста дайте ссылку на статью как настроить проксирования.
Руководство как используя хостинг и node.js, выдать по адрессу моего подДомена //sj. domainName. su/ страницу с текстом "Hello World" ?
Спасибо!
0
5133 / 2745 / 464
Регистрация: 05.10.2013
Сообщений: 7,262
Записей в блоге: 193
11.08.2016, 15:36 6
У меня нет своего хостинга. Я для изучения node.js использую два бесплатных. У меня получились hello, world по этим пошаговым официальным инструкциям:
2
327 / 217 / 97
Регистрация: 04.11.2012
Сообщений: 638
11.08.2016, 17:12 7
Цитата Сообщение от Granfury Посмотреть сообщение
Пожалуйста дайте ссылку на статью как настроить проксирования.
Руководство как используя хостинг и node.js, выдать по адрессу моего подДомена //sj. domainName. su/ страницу с текстом "Hello World" ?
Спасибо!
Настройте сервер, нджинкс например, что-то типа того (если нода работает на 3000 порту):
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
    listen 80;
    server_name nodejs-site.ru;
    root /var/www/nodejs-site.app/public;
    
    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ {
        root /var/www/nodejs-site.app/public/;
    }
 
    location / {
        proxy_read_timeout 120s;
        proxy_pass [url]http://127.0.0.1:3000;[/url]
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
1
Coding is art
Эксперт JS
536 / 420 / 153
Регистрация: 04.09.2013
Сообщений: 1,056
14.08.2016, 23:34 8
Если объяснять просто, то за отображение ( не нода ) отвечает apache или nginx, который автоматически ( при заходе на поддомен ) ( т.е. 80 порт ) пытается запустить php/html файл.. js ( nodejs ) по такому принципу не получиться запустить..
что тут нужно понимать.. в nodejs уже встроен "apache" ( только это не апач, но для понимания пусть будет им ), когда ты говоришь ноду запустить сервер и слушать порт, он по сути делает то же самое что и апач ( которому говоришь слушать порт и вытягивать файлы из такой-то директории ).
НО т.к. на сервере стоит апач и у него уже забиндин порт 80, то нод выдаёт тебе ошибку ( мол порт занят EADDRINUSE ).

Решение: для решения этой проблемы тебе нужно запускать ноду на свободном порту ( этот порт может быть закрыт для внешнего доступа даже ), но настоить апач или nginx таким образом, что бы заходя на 80 порт он тебя "виртуально" перебрасывал на порт который у тебя в ноде стоит.
ProxyPass и ProxyPassReverse используются для этих целей ( выше есть пример, а так же в сети их полно )

Таким образом, человек заходя на 80 порт "виртуально" ( апачем ) перебрасывается на другой порт где работает nodejs.

Кстати, если у тебя порт открыт, то ты должен мочь зайти на него по адресу: yourwebsite.zoneort
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2016, 23:34
Помогаю со студенческими работами здесь

Как запустить скрипт Python на хостинге
Здравствуйте! Заранее прошу прощения - с Python сталкиваюсь впервые. Ситуация такова: На хостинге...

Как запустить .ехе файл на сервере, хостинге?
Как запустить .ехе файл на сервере. Нужно запустить и настроить ехе программу на сервере чтобы...

Как можно раскрутить сервер CS 1.6 расположенный на хостинге?
Помогите с раскруткой

Как развернуть socket сервер на хостинге - Клиент Серверное приложение
Здравствуйте! Столкнулся с такой проблемой: У меня есть клиент и сервер, написанные на сокетах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru