2014-11-01 2 views
1

Я вхожу на новую территорию здесь. Совсем не Linux, но я приобрел выделенный сервер от моей хостинговой компании Ubuntu 12.0.4, работающий на apache2. У меня есть мое доменное имя, которое успешно разрешает этот сервер (базовая индексная страница html «Hello World» отображается хорошо).nodejs default doc on ubuntu

Я установил npm, node и express, и они (насколько я могу судить) работают правильно. Я добавил это приложение к корню как «hello.js»:

var express = require('express'); 
    var app = express(); 

    app.get('/', function(req, res){ 
    res.write("Hello World"); 
    res.end(); 
    }); 

    app.listen(process.env.PORT, function(){ 
    console.log("Server Started"); 
    }); 

После того как я вмазывать (термин?) И запустить «узел hello.js» Я получаю «Started сервера» сообщение. Но никаких результатов, когда я иду в свой домен. Если у меня есть страница index.html, я получаю ее содержимое. Если я удалю его, я получаю каталог.

Как сделать hello.js сайт по умолчанию doc? Или, в более общем плане, как установить точки входа для запуска узлов узла на одном сервере с этой конфигурацией? Я могу написать узел, но развертывание оказывается немного сложнее, чем ожидалось. Может ли кто-нибудь помочь?

+1

Что такое 'process.env.PORT'? Выясните, 'console.log (process.env.PORT)'. Может быть, вам нужно 'app.listen (' *** '80' ***', function ... ' – laggingreflex

ответ

1

Что вы видите, это результат удара Apache. Не ваш сервер Node.js.

Попробуйте запустить свой сервер, как из командной строки:

$ PORT=8080 node hello.js 

Затем укажите свой браузер на:

http://www.youdomain.com:8080/ 

Это будет начать процесс Node.js на порту 8080. Первый аргумент to app.listen - process.env.PORT, который является переменной среды, которую вы устанавливаете в командной строке с помощью указанной выше команды.

Это должно работать, пока у вас нет порта 8080, заблокированного межсетевым экраном между вашим сервером и локальной машиной.

Если вы хотите, чтобы Node.js включил весь ваш веб-сайт на стандартном порту 80, вам необходимо сначала отключить Apache или настроить его как обратный прокси.

+0

Конечно. Я пытаюсь выяснить, как мне обрабатывать узловые дескрипторы для определенных документов/сайтов Я новичок в linux/apache, но понимал, что это не очень сложно сделать. Узел функционирует на сайте (консоль отвечает при запуске сервера). Как получить запросы на маршрутизацию на узел, в противоположность на apache? – user2925994

+0

Ой! Вы прокомментировали только первую строку, когда я обновил, извините! – user2925994

+0

Но да, я бы хотел, чтобы узел приводил в действие весь сайт (причина, по которой я приобрел сервер в первую очередь, я в основном хочу жить песочницу) .Какой маршрут вы порекомендовали бы, отключите apache или обратный прокси? – user2925994