Fast-cgi на Debian

Модератор: Модераторы

Fast-cgi на Debian

Сообщение Ichthyander » 29.06.2017 13:01:51

Нужна консультация, бесплатная или платная от спецов.
Вообщем, решил все-таки попробовать сделать веб-приложение. Как сделать cgi вроде разобрался. Но хотелось бы реализовать fast-cgi.
Само приложение решил разработать на базе компонента BrookFrameWork, чтобы не изобретать велосипед.
Собственно мне нужна будет консультация тех, кто разбирается в администрировании Debian (использую ISPManager 5), как запустить на нем приложение fast-cgi и настроить правильно сервер для его работы.
В принципе здесь же можете оставлять критику, одобрение и свой опыт данного решения. Подобные темы уже были, но сейчас задача более прикладная коyкретно fast-cgi в Linux с возможно ламерскими вопросами. К примеру, если откомпилирую приложение в Ubuntu будет ли оно работать на моем сервере Debian? и т.д.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Fast-cgi на Debian

Сообщение mig-31 » 29.06.2017 19:58:56

На интернете куча материалов.

Все что надо - это правильно настроить веб сервер Apache/ngix.

Компилировал в Mageia 5.1 64-bit (Brooksframework), работало в Ubuntu 16.04 64-bit. Битность должна соответствовать. Не вижу проблемы между Ubuntu и Debian.

А что мешает поставить и делать разработку на Debian. Ubuntu фактически unstable Debian.
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Fast-cgi на Debian

Сообщение ev » 29.06.2017 20:41:54

имхо freebsd + nginx лучше :)
ev
долгожитель
 
Сообщения: 1763
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Fast-cgi на Debian

Сообщение Ichthyander » 29.06.2017 22:33:01

mig-31 писал(а):Все что надо - это правильно настроить веб сервер Apache/ngix.

Ну так у меня как раз основной вопрос в топике именно как включить эту возможность и настроить правильно на сервере. Желательно, чтобы большая часть решалось через панель ISPManager, SSH тоже пойдет, главное чтобы я все понял. См. выше )))
Есть ссылки именно под эту вопросы? Если натыкались, я бы почитал их...

Добавлено спустя 1 минуту 21 секунду:
ev писал(а):имхо freebsd + nginx лучше :)

Возможно и так. Но ось на сервер менять не буду пока ) Так вроде все устраивает...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Fast-cgi на Debian

Сообщение olegy123 » 29.06.2017 22:35:48

Ichthyander писал(а):Собственно мне нужна будет консультация тех, кто разбирается в администрировании Debian (использую ISPManager 5), как запустить на нем приложение fast-cgi и настроить правильно сервер для его работы.

Давно это было..
устанавливаем webserver apache
apt-get install apache2
устанавливаем модуль cgi
a2enmod cgi
чтобы приминить новые настройки - перезагружаем систему или только сервис
service apache2 restart

к конфигу сайта нужно добавить
Код: Выделить всё
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin/">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

"+ExecCGI" - флаг, что к файлы нужно запускать на выполнения.

Добавлено спустя 6 минут 30 секунд:
Ichthyander писал(а):К примеру, если откомпилирую приложение в Ubuntu будет ли оно работать на моем сервере Debian?

конечно да. Но могут быть различие в библиотеках.
Проверить просто
ldd [cgifile]
выдаст список зависимостей.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Fast-cgi на Debian

Сообщение Ichthyander » 30.06.2017 19:39:45

olegy123, спасибо за подсказки. Я проверил и у меня в папке уже присутствует cgi-bin. Я так понимаю помогло включение cgi в настройках пользователя ISPManager. Просто мне как ламеру казалось, что cgi и fast-cgi включаются по-разному. Правильно ли я понял, что по сути включение возможности запуска cgi приложений в cgi-bin автоматом позволяет пользоваться и fast-cgi. На днях поэскпериментирую, соберу на втором компе с убунту hello-world и запущу на своем сервере. Дальше просто кодинг в Lazarus...
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Fast-cgi на Debian

Сообщение pupsik » 30.06.2017 20:32:56

Ichthyander возьмите книгу по работе с апачем (отпадут многие вопросы). По поводу cgi - узко направленная штука, плюс устаревшая (т.е. поддержка её весьма вялая... ).
То что смотрите в сторону "брока" - замечательно. Хотя, вполне возможно, вам хватило бы и лазаря возможностей. Кроме "брока" есть ещё десяток фреймов.
По поводу демок в сети - загнули. Т.е. они есть но... куцые и прямолинейчные (без нюансов и могут с тыка не запуститься). Да и мало их. И полезные только на буржуйском (большая часть испанская, кажись). Так что: демки в подмогу, или конфа фпс, лазаря.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Fast-cgi на Debian

Сообщение olegy123 » 01.07.2017 13:44:23

Ichthyander писал(а):Правильно ли я понял, что по сути включение возможности запуска cgi приложений в cgi-bin автоматом позволяет пользоваться и fast-cgi.

Я не знаю, писал cgi очень давно.
Там же просто, апач заполняет переменные окружения [GET] [POST] [HOST] и запускает программу, которая на выходе выдает результат - который апач пересылает клиенту.
на cgi вообще можно батником/скриптом исполнят.

Сейчас посмотрел, оказывается появились много framework с подходом MVC например
FastPlaz http://www.fastplaz.com/
mORMot https://github.com/synopse/mORMot
delphimvcframework https://github.com/danieleteti/delphimvcframework
- это круто.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Fast-cgi на Debian

Сообщение Ichthyander » 07.07.2017 17:56:23

Все-таки у меня не получается с настройкой сервера для работы FastCGI. Может кто-то подскажет, что конкретно проверить или попробовать.
Пытаюсь запустить скомпилированное приложение. Долго ничего не происходит (показывает вроде как ожидает ответ). А в логах Апач вот это
Код: Выделить всё
[Fri Jul 07 17:13:17.256917 2017] [fcgid:warn] [pid 6897] [client 188.162.193.146:18749] mod_fcgid: can't apply process slot for /var/www/user/data/www/domain_sample.com/cgi-bin/cgi1.fcgi

Да, гуглил. Менял параметры MaxProcessCount, FcgidMaxProcesses, но не помогло. Правда не факт, что сделал все правильно.
Может кто сталкивался с подобной проблемой?
PHP как модуль Apache, mpm-itk для запуска апач из под пользователей. Поставил модуль mod_fcgid. Debian

Добавлено спустя 4 минуты 16 секунд:
И вот такой ламерский вопрос попутно. Простое CGI приложение создает процесс заново. Fast-cgi просто создает отдельный поток, приложение при этом не запускается каждый раз заново. В какой момент запускается Fast-cgi: при первом обращении или при запуске сервера/апач? Если при запуске апач, то как апач узнает об этом приложении?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Fast-cgi на Debian

Сообщение olegy123 » 07.07.2017 22:01:31

Скорее есть карта имен и запущенных нитей..
http://xandeadx.ru/blog/php/866
FastCGI
Дальнейшее развитие технологии CGI, является более производительным и безопасным, снимает множество ограничений CGI-программ.
FastCGI программа работает следующим образом: программа единожды загружается в память в качестве демона (независимо от HTTP-сервера), а затем входит в цикл обработки запросов от HTTP-сервера. Один и тот же процесс обрабатывает несколько различных запросов один за другим, что отличается от работы в CGI-режиме, когда на каждый запрос создается отдельный процесс, "умирающий" после окончания обработки.
Написание FastCGI программ-демонов сложнее чем CGI, нужны дополнительные библиотеки, зависящие от языка.
Опять же, сама аббревиатура FastCGI это не язык программирования и не отдельная программа, это как и в случае CGI — просто спецификация.


Добавлено спустя 5 минут 14 секунд:
http://www.webhostingtalk.com/showthread.php?t=1203229
Код: Выделить всё
MaxRequestsPerProcess 500
MaxProcessCount 3
MaxRequestLen 33554432
IPCCommTimeout 60
IdleTimeout 120
IdleScanInterval 30
BusyTimeout 120
BusyScanInterval 90
ErrorScanInterval 3
ZombieScanInterval 3
ProcessLifeTime 3600


MaxRequestsPerProcess 500
MaxProcessCount 3
MaxRequestLen 33554432

Советуют эти параметры регулировать.. видно есть правило на ограничение объема выходящих данных MaxRequestLen
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Fast-cgi на Debian

Сообщение grot » 08.07.2017 09:54:29

Блин, уже не в силах читать весь этот "поток воспаленного сознания" со всех сторон !

FastCGI относится к CGI также, как
JavaScript к Java - то есть -- НИКАК -- !!!!!!!!!!!!!!!

ТС, если ты (можно на ты ? ) не в силах вбить в поисковый запрос "FastCGI"
и прочитать + понять , что написано на первой же попавшейся ссылке,
не знаю, как тебе можно помочь - но я попробую :
1. Забудь Apache, FastCGI , CGI .
2. Для Web-приложения тебе нужно свою "логику" скомпилировать как кастомный stand-aloan web-server.
( это проложение (in Linux - daemon ) постоянно запущено и общается с миром по HTTP (HTML, JSON, XML, ... )
см пример : fcl-web ( stand-aloan web server надо скомпилировать как daemon)
3. Поставить Nginx ( у него есть проксирование на сторонние Web-сервера (т.е. твое приложение))

У меня подобная "конфигурация" работает без посторонней помощи __ГОДАМИ__ !!!
grot
новенький
 
Сообщения: 74
Зарегистрирован: 13.02.2010 16:33:03

Re: Fast-cgi на Debian

Сообщение olegy123 » 08.07.2017 10:30:14

grot - сразу стал делать правильно? Прям с первого года своего рождения?

Случаи нужно делать почему так, а не иначе бывают разными.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Fast-cgi на Debian

Сообщение Ichthyander » 08.07.2017 11:01:56

grot писал(а):Блин, уже не в силах читать весь этот "поток воспаленного сознания" со всех сторон !

FastCGI относится к CGI также, как
JavaScript к Java - то есть -- НИКАК -- !!!!!!!!!!!!!!!

Спасибо за Ваши рекомендации, но можно как-то без истерики?
можно на ты ?

Нет
1. Забудь Apache, FastCGI , CGI .
2. Для Web-приложения тебе нужно свою "логику" скомпилировать как кастомный stand-aloan web-server.
( это проложение (in Linux - daemon ) постоянно запущено и общается с миром по HTTP (HTML, JSON, XML, ... )
см пример : fcl-web ( stand-aloan web server надо скомпилировать как daemon)
3. Поставить Nginx ( у него есть проксирование на сторонние Web-сервера (т.е. твое приложение))

У меня подобная "конфигурация" работает без посторонней помощи __ГОДАМИ__ !!!

У меня сервер, на котором крутится около 40-80 сайтов. PHP как модуль Apache. mpm-itk для вирт. хостов. Все работает с высоким аптаймом "годами" и без Nginx, поэтому не вижу смысла что-то сейчас менять. Скорее уж откажусь от технологии Fast-CGI, которая нужна скорее [пока?] для одной своей задумки. Да и все настраивать по другому, при том, что я не сильно разбираюсь в Linux администрировании не хочется... Как бы все настроено так как настроено.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Fast-cgi на Debian

Сообщение Ichthyander » 20.07.2017 02:15:33

Пишу, может кто-то столкнется с этим и чтобы не наступали на те же грабли.
Основная проблема была в том, что mpm-itk не работает с модулем mod_fcgid, который нужен для запуска fastcgi приложений. Установил другой модуль к Апач для многопользовательской работы mpm-prefork. Заодно, установил Nginx (это необязательно). Собственно все. Helloworld cработал ;) Да и не забудьте выставить права на выполнение для скомпилированного файла. Есть некоторые непонятности для меня, но главное что заработало... )

Добавлено спустя 1 минуту 6 секунд:
Да, и спасибо olegy123, который выявил готовность помочь мне с моей проблемой.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 668
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань


Вернуться в Сети

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru
cron