OberonCore
https://forum.oberoncore.ru/

O3-Waf + Linux
https://forum.oberoncore.ru/viewtopic.php?f=114&t=5130
Страница 1 из 1

Автор:  Иван Денисов [ Среда, 21 Май, 2014 22:18 ]
Заголовок сообщения:  O3-Waf + Linux

Пётр, поделись, пожалуйста, чем ты крутил Services.Actions, когда запускал вот этот сервер на VPS.
https://bitbucket.org/petryxa/o3-waf (бранч lun)

Автор:  Пётр Кушнир [ Среда, 21 Май, 2014 22:39 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Да в общем примерно так.
Код:
MODULE ConsInit;
   
   VAR
      n: LONGINT;
      
   PROCEDURE Idle (a, b, c: INTEGER);
   BEGIN
      Services.actionHook.Step
   END Idle;
   
   PROCEDURE Cycle (VAR par: ANYREC);
   BEGIN
      Dialog.Call("Config.Setup", " ", res);
      LOOP
         IF n=MAX(LONGINT) THEN n:=0 ELSE INC(n) END;
         IF ((n MOD 100) = 0) THEN Kernel.Collect END;
         IF (n MOD 50) = 0 THEN Kernel.FastCollect END;
         LinLibc.usleep(1000);
         Kernel.Try(Idle, 0, 0, 0);
      END;
   END Cycle;
   
   PROCEDURE Init;
   BEGIN
      n:=0;
      Kernel.Start(Cycle);
      Kernel.Quit(0);
   END Init;

BEGIN
   Init
END ConsInit.

Модуль должен быть загружен при старте консольного ББ вместо ConsInterp кажется.
Там еще нужны всякие заглушки, которые вы разработали для ББ под линукс. Заглушки для логов, и прочее.

Автор:  Иван Денисов [ Четверг, 22 Май, 2014 16:56 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Спасибо Пётр, запустил.

http://o3.blackboxframework.org/
эта демка крутится на Debian 7 (32 бита) через прокси Nginx на хостинге международного Центра в Цюрихе.

Вот конфигурация Nginx для этого сайта.

Код:
upstream bbweb {
        server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name  o3.blackboxframework.org;
    root /home/bbweb/Linux_O3;
 
    access_log /var/log/nginx/o3.access.log;
    error_log /var/log/nginx/o3.error.log;
 
    index index.html;
 
    location / {
   try_files $uri @bbweb;
    }
 

    location @bbweb {
    proxy_redirect     off;

    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_set_header   Host              $http_host;
    proxy_set_header   X-Real-IP         $remote_addr;
    proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;

    proxy_pass http://bbweb;
  }

}


Коды получившегося сервера прикладываю к сообщению.

Вложения:
Linux_O3.7z [1.68 МБ]
Скачиваний: 463

Автор:  Пётр Кушнир [ Четверг, 22 Май, 2014 17:44 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Круто.

Автор:  Иван Денисов [ Пятница, 23 Май, 2014 06:15 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Есть идея сделать простую CMS на базе открытого примера. Там уже есть авторизация и редактирование базы данных. Надо будет попробовать как это дело совмещается с драйвером для MySQL.

Автор:  Иван Денисов [ Пятница, 23 Май, 2014 08:04 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Только этот Init сильно грузит процессор все равно. Увеличил аргумент в usleep в 10 раз, но все равно это пока очень сырое решение получается.

Код:
MODULE Init;

   IMPORT
      SYSTEM, Kernel, Services, LinLibc,
      
      HostConsole (* Console.SetHook *) ,
      HostFonts (* Fonts.SetHook; required for Texts *),
      HostWindows (* Windows.SetHook *),
      HostDates (* Dates.SetHook *),
      HostDialog (* Dialog.SetShowHook *),
      StdInterpreter (* Dialog.SetCallHook *) ,
      StdDialog (* Views.SetViewHook *),
      StdLog, ConsLog, (* Log.Hook *)
      Log,      
      (* , LinLog, *)
      (* Converters (* .odc *), *)
      Dialog,
      AppStartup;
   
   CONST
      gc = 1000;
   
   VAR
      c: INTEGER;
      
       n: LONGINT;
         
       PROCEDURE Idle (a, b, c: INTEGER);
       BEGIN
          Services.actionHook.Step
       END Idle;
       
       PROCEDURE Cycle*;
      VAR res: INTEGER;
       BEGIN
         Dialog.Call("Config.Setup", " ", res);
         
         Dialog.Call("O3bbStartup.Start","",res);
         AppStartup.Start;
         
         LOOP
             IF n=MAX(LONGINT) THEN n:=0 ELSE INC(n) END;
             IF ((n MOD 100) = 0) THEN Kernel.Collect END;
             IF (n MOD 50) = 0 THEN Kernel.FastCollect END;
             LinLibc.usleep(10000);
             Kernel.Try(Idle, 0, 0, 0);
          END;
       END Cycle;
       
       PROCEDURE Init;
       BEGIN
          n:=0;
          Kernel.Start(Cycle);
          Kernel.Quit(0)
       END Init;

BEGIN
   Init
END Init.

Автор:  Пётр Кушнир [ Пятница, 23 Май, 2014 10:30 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Да, у меня тоже грузит, где-то 5-8% постоянно, но я как-то не парюсь. Вроде обсуждали уже это.

Автор:  Роман М. [ Пятница, 23 Май, 2014 11:46 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Иван Денисов писал(а):
Спасибо Пётр, запустил.

http://o3.blackboxframework.org/
Для демонстрации слишком примитивно. Было бы круче работать с составными документы через веб-интерфейс.

Автор:  Роман М. [ Пятница, 23 Май, 2014 11:50 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Иван Денисов писал(а):
Только этот Init сильно грузит процессор все равно. Увеличил аргумент в usleep в 10 раз, но все равно это пока очень сырое решение получается.

Не это ли грузит:
Цитата:
IF ((n MOD 100) = 0) THEN Kernel.Collect END;
IF (n MOD 50) = 0 THEN Kernel.FastCollect END;

Автор:  Иван Денисов [ Пятница, 23 Май, 2014 12:20 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Роман М. писал(а):
Не это ли грузит:
Цитата:
IF ((n MOD 100) = 0) THEN Kernel.Collect END;
IF (n MOD 50) = 0 THEN Kernel.FastCollect END;

Пробовал увеличивать эти числа, но это незаметно влияет на загрузку CPU.

Автор:  Иван Денисов [ Пятница, 23 Май, 2014 12:22 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Роман М. писал(а):
Иван Денисов писал(а):
Спасибо Пётр, запустил.

http://o3.blackboxframework.org/
Для демонстрации слишком примитивно. Было бы круче работать с составными документы через веб-интерфейс.

Сейчас задача сделать простенькую CMS средствами O³-waf. Демонстрация имеет своей целью показать Центру, что O³-waf может легко жить вместе с другими сайтами на нашем хостинге. Это не демонстрация каких-то новых прорывных технологий.

Автор:  Иван Денисов [ Пятница, 13 Июнь, 2014 13:41 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Похоже ребята из EDIS настроили против него firewall :) причем как-то очень умно, так что я не могу понять по какому критерию. Буду писать в тех поддержку... Сервер запускается, соединения устанавливает, но ничего не передает теперь в ответ на запросы.

Автор:  Иван Денисов [ Понедельник, 21 Июль, 2014 22:00 ]
Заголовок сообщения:  Re: O3-Waf + Linux

Да, а демка опять работает. В чем было дело я так и не понял.

http://o3.blackboxframework.org/

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/