FastCGI / SCGI предварительная вилка - PullRequest
2 голосов
/ 23 июля 2011

Я пытался реализовать шлюз веб-сервера (для забавы и в образовательных целях), и у меня есть несколько вопросов о базовой архитектуре FastCGI / SCGI в отношении предварительной модели.

КакРеализации FastCGI / SCGI обрабатывают связь в сценариях перед форком?AFAIK, шлюз имеет только один сокет для подключения к серверу FastCGI.Обычно есть родительский процесс, который принимает соединения от шлюза и передает работу одному из предварительно разветвленных рабочих.

Поскольку соединения установлены после , дочерние элементы разветвляются,как вы предполагаете, чтобы дети использовали эти сокеты для связи со шлюзом?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Один из вариантов - дескриптор файла, передающий через сокет домена UNIX. У Стивенса УНП есть базовый пример .

1 голос
/ 15 августа 2011

Надеюсь, я понял вопрос.

Серверный сокет должен быть создан родительским процессом;когда он разветвляется, дети наследуют этот сокет, делая его общим ресурсом.Затем, я полагаю, каждый ребенок пытается одновременно принимать () соединения.

В качестве ссылки я нашел этот документ (см. "Принять сериализацию"), обсуждающий проблему голодания при прослушивании нескольких сокетов, и это обсуждение SO по совместному использованию сокетов

...