Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 968 раз!

Форум

Добро пожаловать, Гость!

Node.js + Open Server

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Dr@KoN
Сообщения: 7
C нами: 4 года 1 мес
Контакты:

Непрочитанное сообщение Dr@KoN » 31 окт 2012, 16:18

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

Mr.Emm
Сообщения: 77
C нами: 5 лет 11 мес

Непрочитанное сообщение Mr.Emm » 10 мар 2013, 19:10

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

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 10 мар 2013, 19:42

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


Отчего вы так решили? Node.js не добавлен и наверное никогда не будет поскольку я уже писал в другой теме - nodejs настраивается для конкретного домена (как я понял) и сделать универсальную конфигурация для запуска невозможно. Сам я с node.js дела никогда не имел. Если я ошибаюсь и у вас есть конкретные реализации универсальной конфигурации (на примере описанной выше) с одним портом и одним конфигом под все домены то напишите, с радостью рассмотрю ваш вариант.

night
Сообщения: 1
C нами: 3 года 6 мес
Контакты:

Непрочитанное сообщение night » 08 июн 2013, 13:19

Кто нибудь работал с node.js на OS? Отпишитесь

carfagen
Сообщения: 3
C нами: 3 года 7 мес

Непрочитанное сообщение carfagen » 09 авг 2013, 16:03

night писал(а):Кто нибудь работал с node.js на OS? Отпишитесь

Меня тоже это интересует...

Dr@KoN писал(а):3. Последним надо настроить nginx для переадресации необходимых запросов к серверу тода.

Я не совсем понял, где нужно настраивать этот сервер... Можно подробнее?
И Доработка Open Server не совсем понятная... = (

wormen86
Сообщения: 115
C нами: 3 года 1 мес

Непрочитанное сообщение wormen86 » 14 окт 2013, 05:44

У автора топика немного неправильный подход к этой задаче, там делается все немного иначе....

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

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

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

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

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

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

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 окт 2013, 05:58

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

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

wormen86
Сообщения: 115
C нами: 3 года 1 мес

Непрочитанное сообщение wormen86 » 14 окт 2013, 06:05

все верно, я имел ввиду, ту что на порту 1515...
я хотел сделать так:

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

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

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

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 окт 2013, 06:08

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

wormen86
Сообщения: 115
C нами: 3 года 1 мес

Непрочитанное сообщение wormen86 » 14 окт 2013, 06:29

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

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

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


Вернуться в «Модули и инструменты»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 1 гость