Подтвердить что ты не робот

Зачем внедрять веб-приложение как FastCGI, а не новый веб-сервер?

Я понимаю цель FastCGI с точки зрения производительности по сравнению с другими интерфейсами шлюза. Но если библиотеки, которые используют FastCGI, уже должны пройти кропотливые меры по внедрению безопасной и эффективной службы TCP, почему бы просто не писать приложения в качестве веб-сервера? Является ли менее эффективным для интерфейсного веб-сервера реализовать обратный прокси, чем для FCGI? Или спецификация FCGI намного проще, чем спецификация HTTP?

4b9b3361

Ответ 1

У меня была программа веб-сервера, которую я заменил программой FCGI. Часть причин, по которым я это сделал, была из-за требований программы. Он должен был работать под существующим веб-сервером, поскольку для этого не требуется дополнительной настройки.

Еще одно требование заключалось в том, что он сможет отслеживать некоторые значения состояния, которые могут часто меняться. Существующая программа была не очень эффективной, отслеживая эти государственные ценности извне и делая новую нагрузку на них для каждого запроса. Одним из преимуществ программы FCGI является то, что она является постоянной, поэтому она может опросить эти государственные ценности, и они будут доступны и готовы для каждого запроса.

Мне не нужно было реализовывать какую-либо спецификацию FCGI, я просто использовал существующую библиотеку FCGI и обрабатывал для меня всю связь с веб-сервером. По сравнению с другими приложениями, которые я написал с встроенным веб-сервером, реализация одного из них с библиотекой FCGI была относительно простой.

Другим преимуществом FCGI является то, что приложение FCGI не обязательно должно находиться на диске, доступном для веб-сервера. Вы можете настроить сервер для установления соединения TCP с экземпляром вашего приложения FCGI на другом сервере. Если вы находитесь в ситуации, когда вы не можете напрямую обращаться к веб-серверу, это может быть очень полезно. Выполнение одного и того же с другими методами может быть громоздким, но приложение FCGI даже не нужно изменять. Просто настройте сервер, запустите приложение под хостом FCGI, и вам хорошо идти.

Еще одно преимущество FCGI заключается в том, что вы можете настроить веб-сервер для распределения запросов между заданным количеством экземпляров вашего приложения. Если ваше веб-приложение работает лучше всего, обращаясь к каждому запросу синхронно, FCGI идеален, потому что вы можете запрограммировать каждый запрос в один экземпляр, и этот экземпляр может обрабатывать каждый запрос в одном цикле. Если вам требуется не более 2, 3 или n экземпляров, все, что вам нужно сделать, это изменить значение на сервере, и вы можете это сделать.

Таким образом, FCGI не подходит для каждой ситуации. Это время, когда вы сталкиваетесь с необычными требованиями, что FCGI является наиболее привлекательным.