
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
Сообщ.
#1
,
|
|
|
Имеется самописный сервер на C++, умеющий отвечать на запросы в json - в этом состоит его основной функционал (отдаёт обновления чата). Основную веб-морду он пока отдаёт тоже сам (в виде html-страничек с js-скриптами, которые через ajax запрашивают обновления чата). Схема работает, но получается что весь бэкэнд я вынужден писать на плюсах, а это, мягко говоря, плохо расширяемая архитектура. Хочется подключить, скажем, apache c php, куда можно поставить готовые CMS (например WordPress); а выход на мой чат был бы только одной из страничек его сайта.
Ну т.е. хотелось бы организовать что-то вроде такого: mysite.ru/wp/index.php - отдаёт обычный сайт на php mysite.ru/chat/?p1=v1&v1=v2 - отдаёт ответы от моего cpp-щного сервера. В принципе проблема легко бы решалась, если бы php-шный сайт работал себе на привычном 80м порту, а cpp-шный сервер - на каком-нибудь другом. Но мне хочется чтобы всё делалось на 80м (другие порты ведь у пользователя могут быть закрыты - на работе злым админом, дома - роутером, который далеко не все умеют настраивать). Пока есть мысли о связке через fastCGI, модули к php или тупо через php-socket (последний вариант уже пробовал, но напрягает создание отдельного php-интерпретатора на каждый запрос пользователя; а ведь в чате это long-pooling, т.е. созданный процесс не просто отработал и умер, а ждёт обновления чата до 15 секунд; собственно из за этого я и перешёл на c++). Или ситуация решается ещё проще, как-то через настройку htaccess? Подскажите, в какую сторону копать? (отказ от ядра на C++ не предлагать, мне нужно понять, как сделать ему веб-интерфейс и подружить с php). P.S. Вопрос размещаю в ветках форума и про C++, и про HTTP сервера, не знаю кого он больше касается (если всё сводится к настройке htaccess, то ко второму, а если нет - то к более "увлекательному" первому). |
Сообщ.
#2
,
|
|
|
во-первых, попробуй перейти с apache на nginx, почувствуешь разницу в скорости, и возможно с++ не пригодится.
но, если ты настаиваешь на с++, я бы копал в сторону fastcgi. вот хорошая статья по теме: http://habrahabr.ru/post/154187/. т.е в конечном счете твой nginx конфиг будет выглядеть так (схематично): ![]() ![]() server { server_name localhost; location /cppchat { fastcgi_pass 127.0.0.1:9001; // твой c++ демон висит на 9001 include fastcgi_params; } location / { fastcgi_pass 127.0.0.1:9000; // php-fpm на все остальные странички include fastcgi_params; } } |