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

Вид: 9877|Ответ: 0

Протокол nginx fastcgi_pass кратко представлен и протестирован

[Скопировать ссылку]
Опубликовано 2021-11-16 22:16:20 | | | |
NGINX обычно отправляет запросы в процесс управления FastCGI для обработки, например, сайт PHP, PHP-FPM — это реализация протокола FastCGI, гипервизора, управляющего PHP-CGI. Вот схема:



CGI расшифровывается как «Common Gateway Interface» — инструмент, позволяющий HTTP-серверам «общаться» с программами на ваших или других машинах, и их программы должны работать на веб-сервере.

Недостатки CGI: Когда каждый запрос поступает, CGI форчит новый процесс, а затем, например, PHP, каждый запрос занимает значительное количество памяти, так что при запуске он будет полностью GG.

Для решения этой проблемы был создан fastCGI.

FastCGI — это как долгоживущая CGI, его можно запускать постоянно, если он активирован, форк не требует времени каждый раз (это самый критикуемый режим fork-and-execute в CGI). Он также поддерживает распределённые вычисления, то есть программы FastCGI могут выполняться на других хостах, отличных от веб-сервера, и принимать запросы с других веб-серверов.
Тест

Создайте новый php-файл в каталоге D:\dev_tools\nginx-1.20.0\html\php, чтобы предотвратить сообщение nginx об ошибке 404, если файл не найден, следующим образом:



nginx fastcgi_pass настроен следующим образом:



Данные, передаваемые nginx fastcgi_pass, должны быть обработаны согласно протоколу FastCGIЕсли интересно, можете зайти и узнать, я использую sokit здесь, чтобы включить прослушивание TCP для простого приёма, попробуйте использовать браузер для доступа:http://127.0.0.1:22229/itsvse.php, как показано на рисунке ниже:



22:06:07 DAT ---> [TCP] 127.0.0.1:1032 <1136> ..................... B.... QUERY_STRING.. REQUEST_METHODGET.. CONTENT_TYPE.. CONTENT_LENGTH.. SCRIPT_NAME/itsvse.php.. REQUEST_URI/itsvse.php.. DOCUMENT_URI/itsvse.php.» DOCUMENT_ROOTD:/dev_tools/nginx-1.20.0/html/php.. SERVER_PROTOCOLHTTP/1.1..REQUEST_SCHEMEhttp.. GATEWAY_INTERFACECGI/1.1..SERVER_SOFTWAREnginx/1.20.0..REMOTE_ADDR127.0.0.1.. REMOTE_PORT1025.. SERVER_ADDR127.0.0.1.. SERVER_PORT22229... SERVER_NAME... REDIRECT_STATUS200.. HTTP_HOST127.0.0.1:22229..HTTP_CONNECTIONkeep-живой.. HTTP_CACHE_CONTROLmax-возраст=0.@HTTP_SEC_CH_UA«хром»; v="92", " не A; Brand»; v="99", "Google Chrome"; v="92".. HTTP_SEC_CH_UA_MOBILE?0..HTTP_UPGRADE_INSECURE_REQUESTS1.sHTTP_USER_AGENTMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8, приложение/подписанный обмен; v=b3; q=0.9..HTTP_SEC_FETCH_SITEnone.. HTTP_SEC_FETCH_MODEnavigate... HTTP_SEC_FETCH_USER?1..HTTP_SEC_FETCH_DESTdocument... HTTP_ACCEPT_ENCODINGgzip, сдути, бр.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8......................
(Конец)




Предыдущий:Установите curl на основе Debian (образ docker).
Следующий:E45: 'readonly' option is set (add ! to override)
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com