Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 9877|Odgovoriti: 0

Protokol nginx fastcgi_pass je na kratko predstavljen in preizkušen

[Kopiraj povezavo]
Objavljeno 16. 11. 2021 ob 22:16:20 | | | |
NGinx običajno pošilja zahteve v proces upravljanja FastCGI v obdelavo; na primer php-fpm je implementacija protokola Fastcgi, hipervizor, ki upravlja php-cgi. Tukaj je diagram poteka:



CGI pomeni "Common Gateway Interface", orodje za HTTP strežnike, da "komunicirajo" s programi na vašem ali drugih računalnikih, njihovi programi pa morajo delovati na spletnem strežniku.

Slabosti CGI-ja: Ko vsaka zahteva vstopi, CGI razveja nov proces, nato pa kot primer vzamemo PHP, vsaka zahteva porabi precejšnjo količino pomnilnika, tako da je ob zagonu popolnoma GG.

Za rešitev tega problema je bil ustvarjen fastCgi.

FastCGI je kot dolgotrajni CGI, ki ga je mogoče izvajati ves čas, dokler je aktiviran, ne traja več časa za vsakič fork (to je najbolj kritiziran način fork-and-execute CGI). Podpira tudi distribuirano računalništvo, kar pomeni, da se lahko programi FastCGI izvajajo na gostiteljih, ki niso spletni strežnik, in sprejemajo zahteve z drugih spletnih strežnikov.
Preizkus

Ustvarite novo PHP datoteko v mapi D:\dev_tools\nginx-1.20.0\html\php, da preprečite, da bi nginx poročal o napaki 404, ko datoteke ni mogoče najti, kot sledi:



NGinx fastcgi_pass je konfiguriran takole:



Podatke, ki jih prenaša nginx fastcgi_pass, je treba razčleniti v skladu s protokolom FastCGIČe te zanima, lahko preveriš, tukaj uporabljam sokit za omogočanje TCP poslušanja za preprosto sprejemanje, poskusi uporabiti brskalnik za dostop:http://127.0.0.1:22229/itsvse.php, kot je prikazano na spodnji sliki:



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-živ.. HTTP_CACHE_CONTROLmax-starost=0.@HTTP_SEC_CH_UA"Krom"; v="92", " Ne 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, podobno kot 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, aplikacija/podpisana izmenjava; 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, izprazni, br.. HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0,9,en; q=0,8......................
(Konec)




Prejšnji:Namestite curl na osnovi Debiana (docker image).
Naslednji:E45: 'readonly' option is set (add ! to override)
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com