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.exe2.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. Я пока еще не придумал как но необходимо сделать механизм относительной переадресации от конкретного домена к конкретному порту нода, т.к. нод не умеет работать с доменами, только с портами. И включить эти настройки в интерфейс.
---
Пожелания и комментарии приветствуются.
Особо жду предложений по реализации от Максима
