Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 9877|Odpowiedź: 0

Protokół fastcgi_pass nginx jest krótko wprowadzony i testowany

[Skopiuj link]
Opublikowano 2021-11-16 22:16:20 | | | |
NGinx zazwyczaj wysyła żądania do procesu zarządzania FastCGI w celu przetworzenia, na przykład PHP-FPM to implementacja protokołu Fastcgi, hipernadzorcy zarządzającego PHP-CGI. Oto schemat przepływu:



CGI oznacza "Common Gateway Interface" (Common Gateway Interface), narzędzie umożliwiające serwerom HTTP "komunikację" z programami na Twoim lub innych komputerach, a ich programy muszą działać na serwerze WWW.

Wady CGI: Gdy każde żądanie wchodzi, CGI rozgałęzia nowy proces, a następnie weźmy na przykład PHP, każde żądanie zużywa znaczną ilość pamięci, więc po uruchomieniu będzie całkowicie GG.

Aby rozwiązać ten problem, stworzono fastCgi.

FastCGI jest jak długowieczne CGI – można je wykonywać cały czas, o ile jest aktywowane, nie zajmuje czasu na forkowanie za każdym razem (to najbardziej krytykowany tryb fork-and-execute w CGI). Obsługuje także rozproszone obliczenia, co oznacza, że programy FastCGI mogą być uruchamiane na hostach innych niż serwer WWW i akceptować żądania z innych serwerów WWW.
Test

Utwórz nowy plik php w katalogu D:\dev_tools\nginx-1.20.0\html\php, aby zapobiec zgłaszaniu błędu 404 w przypadku nieodnalezienia pliku przez nginx, w następujący sposób:



Nginx fastcgi_pass jest skonfigurowany następująco:



Dane przesyłane przez nginx fastcgi_pass muszą być analizowane zgodnie z protokołem FastCGIJeśli jesteś zainteresowany, możesz się przekonać – używam tutaj sokit, aby włączyć nasłuch TCP dla prostego odbioru, spróbuj użyć przeglądarki, aby uzyskać dostęp:http://127.0.0.1:22229/itsvse.php, jak pokazano na poniższym rysunku:



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-żywy.. HTTP_CACHE_CONTROLmax-wiek=0.@HTTP_SEC_CH_UA"Chrom"; v="92", " Nie 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, podobnie jak Gecko) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html, application/xhtml+xml, application/xml; q=0,9,obraz/avif,obraz/webp,obraz/apng,*/*; q=0,8, application/signed-exchange; 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, spuść, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8......................
(Koniec)




Poprzedni:Zainstaluj curl na bazie Debiana (obraz dockera).
Następny:E45: 'readonly' option is set (add ! to override)
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com