Установка node.js на FreeBSD и использование под Nginx
Случайно нашел сайт nodejs.ru, полистал и добавил в ридер. Давно хотел попробовать node.js, но именно этот сайт стал той самой последней каплей в чаше желания и я решил незамедлительно попробовать node.js в действии.
Установка
Заходим на оф. сайт node.js и копируем ссылку на архив с сорцами.
# cd /tmp
# fetch http://s3.amazonaws.com/four.livejournal/20100120/node-v0.1.26.tar.gz
# tar -xzvf node-v0.1.26.tar.gz
# cd node-v0.1.26
# ./configure --prefix=/usr/local
# make && make install
# rehash
Если у вас не установлен libexecinfo, то:
# cd /usr/ports/devel/libexecinfo
# make install
Использование
Потестим для начала сам node, для этого создайте файлик example.js со следующим содержимым:
var sys = require('sys');
sys.puts('Hello, people!');
И запустите этот файлик:
# node example.js
Если нет ошибок, то можете продолжить и завязать node с nginx. А если есть ошибки - пишите в комментарии, помогу.
Использование с Nginx
Думаю у вас уже стоит Nginx, поэтому привожу сразу конфиг для нашего node.js хоста.
А если Nginx у вас НЕ установлен/настроен, то вам сюда.
...
location /nodejs/ {
proxy_pass http://127.0.0.1:8081/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
...
Далее, создадим скрипт server.js со следующим содержимым:
var sys = require('sys');
var http = require('http');
http.createServer(function (req, res) {
res.sendHeader(200, {'Content-Type': 'text/plain'});
res.sendBody('Hello, people!', 'utf8');
res.finish();
}).listen(8081);
sys.puts('Server running at port 8081');
Ну а теперь запустим сам бекенд и рестартанем nginx:
# node server.js
# /usr/local/etc/rc.d/nginx restart
Если вы запустите с ключом –debug, то вам станет доступен дебагер на tcp-порту 5858
#node --debug server.js
Заходим на http://localhost:8081/ и наблюдаем за результатом!
Резюме
Это вступительная статья, в ней ничего нет сложного. но чтобы опробовать node.js тут достаточно информации.
То, с чем я советую ознакомиться:
- Посмотрите реализацию серверного компонента чата на node.js http://github.com/ry/node_chat/blob/master/server.js
- Можно еще посмотреть бенчмарки http://four.livejournal.com/1019177.html
- И почитать интересную статью Nginx + серверный Javascript

Комментарии 22
Архив обсуждения. Новые комментарии закрыты.
а какие реальные цели его использования?
Ну как и любого другого языка и фреймворка. А плюсы, то что пишешь что клиентскую часть на js, что серверную. Да и во многих случаях движок V8 побыстрее многих других серверных языков, например PHP, Python, Ruby…
нет я имел ввиду что конкретно ты собираешься с ним делать
Пока у меня для него нет реальных задач, я просто экспериментирую. Вот кстати, почитай.
О, ещё один Node-писатель :) Здорово.
Как насчёт сегфолтов Ноды при работе во FreeBSD? Раньше точно была проблема.
ахуенчег! эдво, не трави …. ну пожалуйста, ведь жс так ахуенен!!!! а ты травишь … еще и жс + нгинкс :'(
Давай-давай потрать время с пользой :D
adw0rd, ыыыы )))))) ненене!!
Kuroki Kaze, пропустил ваш каммент, извините. Да, проблемы имели место быть в 0.1.26, но сейчас поставил 0.1.32 и все работает хорошо
А можно установить git, и дальше все как обычно.
Здравствуйте у меня проблема при установке на freebsd после ./configure –prefix=/usr/local пишет что: env:python:No such file or directory.
версия nodejs 0.1.104.
libexecinfo - установил.
Заранее спасибо.
Ну а python стоит?
Спасибо но я уже решил проблему я из портов поставил =) там и версия поновее
Новее чем с оф. сайта? :)
хорошо написано, доступно для новичка
Можно неплохой твиттер на основе этого написать или тот же чат с очередями на обновление сообщения, удаление, добавление
клевый пример http://nodejs.ru/553
Доброго времени суток! При установке выдает следующую ошибку:
Подскажите плиз, что это и как решить проблему?
Наверное хочет gmake:
обновил gmake - не помогает
Ну теперь его надо запустить :)
gmake && gmake install
долго искал подобный пост. Очень нужно собрать на одном сервере Perl, Node.js и Java EE.Сейчас попробую прокси раскидать на Apache, Node, GlassFish