Страница 1 из 4

Node.js + Open Server

Добавлено: 31 окт 2012, 16:18
Dr@KoN
Node.js. Пример интеграции с Open Server
1. Для начала необходим бинарник нода, я получил его установив нод с оф сайта и скопировав папку C:\Program Files\nodejs в каталог модулей. Типо так : D:\Open Server\modules\nodejs
p.s. нод работает и без установки, но где скачать архивом эти файлы я не нашел.
2. Надо настроить запуск нода вместе с сервером. Для этого:
2.1. создать файл D:\Open Server\modules\nodejs\index.js:
require("../../domains/localhost/"); //Запускаем [i]index.js[/i] из данного домена
p.s. для require при указании пути к папке файлом по умолчанию является index.js
2.2. создаем файл D:\Open Server\userdata\start.bat:
start ../modules/nodejs/node.exe "../modules/nodejs/"
p.s. при запуске самого нода при указании пути к папке файлом по умолчанию так же является index.js
2.3. файл для остановки нода D:\Open Server\userdata\stop.bat:
taskkill /im node.exe
2.4. в папке с доменом так же создаем index.js:
var http = require("http");
   function onRequest(request, response) {
      response.writeHead(200, {"Content-Type": "text/plain"});
      response.write("Hello World");
      response.end();
   }
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
p.s. То как писать код на ноде можно ознакомиться тут: http://nodebeginner.ru
3. Последним надо настроить nginx для переадресации необходимых запросов к серверу тода. Пример:
location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
}
location ^~ /nodejs/ {
   proxy_pass http://%ip%:8888;
   proxy_set_header Host $host;
}
p.s. Теперь все запросы к серверу типа http://localhost/nodejs/ будут идти на нод
Замечание
У меня нет точного представления как работает относительная адресация в Open Server, поэтому данные настройки достаточно кривы.
Доработка Open Server
Ссылаясь на вышесказанное предлагаю следующие доработки:
1. Включить в модули Node.js
2. При старте сервера запускать через ехе"шник нода файл index.js. Хранить его можно в \userdata\config. В файле будут настройки запуска нода: какие домены и с какими портами стартовать, и их запуск. При остановке соответственно останавливать процесс с нодом.
p.s. Для локальной разработки думаю вполне будет достаточным запускать все домены в одном процессе нода.
3. В интерфейсе программы сделать вызов редактирования настроек нода
4. Я пока еще не придумал как но необходимо сделать механизм относительной переадресации от конкретного домена к конкретному порту нода, т.к. нод не умеет работать с доменами, только с портами. И включить эти настройки в интерфейс.
---
Пожелания и комментарии приветствуются.
Особо жду предложений по реализации от Максима :D

Добавлено: 10 мар 2013, 19:10
Mr.Emm
Так что, node.js уже нормально внедрен в последнюю версию OS или далее будем костылями пользоваться?:)

Добавлено: 10 мар 2013, 19:42
Максим
Mr.Emm писал(а):Так что, node.js уже нормально внедрен в последнюю версию OS или далее будем костылями пользоваться?:)
Отчего вы так решили? Node.js не добавлен и наверное никогда не будет поскольку я уже писал в другой теме - nodejs настраивается для конкретного домена (как я понял) и сделать универсальную конфигурация для запуска невозможно. Сам я с node.js дела никогда не имел. Если я ошибаюсь и у вас есть конкретные реализации универсальной конфигурации (на примере описанной выше) с одним портом и одним конфигом под все домены то напишите, с радостью рассмотрю ваш вариант.

Добавлено: 08 июн 2013, 13:19
night
Кто нибудь работал с node.js на OS? Отпишитесь

Добавлено: 09 авг 2013, 16:03
carfagen
night писал(а):Кто нибудь работал с node.js на OS? Отпишитесь
Меня тоже это интересует...
Dr@KoN писал(а):3. Последним надо настроить nginx для переадресации необходимых запросов к серверу тода.
Я не совсем понял, где нужно настраивать этот сервер... Можно подробнее?
И Доработка Open Server не совсем понятная... = (

Добавлено: 14 окт 2013, 05:44
wormen86
У автора топика немного неправильный подход к этой задаче, там делается все немного иначе....

Недавно тоже задался вопросом интегрировать Node.JS в Open Server, как раз пригодилась моя портативная сборка Node...

Когда доделаю свое свое решение, выложу, может кому пригодится.....

А пока интересует несколько моментов:

1) в каком месте хранятся все настройки сервера (контекстное меню>настройки)

2) каким образом можно заменить встроенную веб-панель, чтобы можно было используя настройки панели подгружать на указанный в настройках порт веб-панель написанную на Node.JS
---------

если расположение некоторых настроек специально скрыто от посторонних глаз, и не разглашаются, то можно о них написать в личку.

Добавлено: 14 окт 2013, 05:58
Максим
wormen86, настройки хранятся в файле userdata/profiles/имя_профиля.ini. Есть еще немного профиле-независимых настроек, они хранятся в файле userdata/init.ini

По поводу веб-панели - я не понял о чём именно вы говорите. Если о панели веб-инструментов по адресу http://домен/openserver/, то там используется обычная папка-алиас, сама панель это картинки и PHP файл в этой папке, можете редактировать их как угодно. Если же вас интересует та панель, которая управляет сервером(старт/стоп) и работает на порту 1515, то у вас к ней доступа нет, она зашита в программу.

Добавлено: 14 окт 2013, 06:05
wormen86
все верно, я имел ввиду, ту что на порту 1515...
я хотел сделать так:

- получаю в Node порт панели из Open Server
- открываю эту панель

но если этот порт уже будет занят вшитой в в программу панелью, то соответственно не получится использовать этот порт двумя процессами, именно этот момент меня больше всего и интересовал...

а точнее как отключить вшитую панель или перехватить процесс от Node чтобы использовать свою панель

Добавлено: 14 окт 2013, 06:08
Максим
Не совсем понимаю, причем тут Node до встроенной панели управления? Если вам нужен порт 1515, то просто отключите панель или измените порт в настройках, чтобы освободить этот порт. А если вам нужно запустить Node и работать с ним на нужном порту, то делайте это согласно документации к Node, панель управления Open Server к этому отношения иметь не будет.

Добавлено: 14 окт 2013, 06:29
wormen86
нет, вы меня не поняли, я пишу панель для сервера на Node, и хочу использовать вместо вшитой свою. Для входа в эту панель будут использоваться настройки взятые из Open Server.

в итоге, на текущий момент если использовать один и тот же порт двумя процессами, то будет конфликт при доступе.

именно поэтому и спрашиваю как лучше сделать чтобы вшитая панель не занимала порт, или просто ее отключить, но при этом чтобы в настройках осталась возможность включения/отключения веб-панели