2 февраля 2010 г. FreeBSD Nginx node.js

Установка 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 тут достаточно информации.
То, с чем я советую ознакомиться:

Комментарии

а какие реальные цели его использования?

Ну как и любого другого языка и фреймворка. А плюсы, то что пишешь что клиентскую часть на 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

Доброго времени суток! При установке выдает следующую ошибку:

taoapi# make && make install
I need GNU make. Please run `gmake` instead.
make: don't know how to make install. Stop

Подскажите плиз, что это и как решить проблему?

Наверное хочет gmake:

$ make search name=gmake
Port:   gmake-3.82
Path:   /usr/ports/devel/gmake
Info:   GNU version of 'make' utility
Maint:  autotools@FreeBSD.org
B-deps: gettext-0.18.1.1 libiconv-1.13.1_1
R-deps: gettext-0.18.1.1 libiconv-1.13.1_1
WWW:    http://www.gnu.org/software/make/make.html

обновил gmake - не помогает

Ну теперь его надо запустить :)
gmake && gmake install

долго искал подобный пост. Очень нужно собрать на одном сервере Perl, Node.js и Java EE.Сейчас попробую прокси раскидать на Apache, Node, GlassFish

Оставьте свой комментарий

Markdown