Modhanna íocaíochta Abuse

504 am geata amach Nginx a shocrú

20.02.2024, 23:31

Earráid 504 Ciallaíonn Teorainn Ama Geata i Nginx nach raibh an freastalaí a bhí ag rith Nginx in ann freagra a fháil ón seachfhreastalaí laistigh den tréimhse ama sonraithe. Tarlaíonn sé seo de ghnáth toisc nach bhfuil an seachfhreastalaí in ann an t-iarratas a phróiseáil laistigh den am tugtha nó mar gheall ar fhadhbanna ceangail idir Nginx agus an seachfhreastalaí.

Cén fáth a bhfuil Teorainn Ama Geata 504 le feiceáil?

Tarlaíonn an earráid nuair a bhíonn freastalaí Nginx ag rith i mód seachfhreastalaí. Tarlaíonn sé seo nuair a úsáideann php-fpm nó Apache. Má aistrímid ó Bhéarla go Rúisis, gheobhaimid an méid seo a leanas - sáraíodh an teorainn ama fanacht le freagra ón bhfreastalaí.

Tá roinnt cúiseanna leis an iompar seo:

  • tá an script PHP nó i dteanga eile reoite go hiomlán agus ní chuirfidh sé aon fhreagra ar ais;
  • ritheann an script ar feadh tréimhse an-fhada, ach tá eatramh cumraithe ag Nginx chun an nasc a athshocrú mura bhfreagraíonn an freastalaí sprice don iarratas laistigh de na línte leithroinnte;
  • tá an freastalaí ró-ualach agus níl am aige freastal ar gach cliant nó freagraí a thabhairt ar ais ar gach iarratas Nginx.

Anois, déanaimis labhairt faoi cad is féidir a dhéanamh agus conas an earráid 504 Gateway Timeout a réiteach.

Conas am geata 504 Nginx a shocrú?

Is é an chéad rud ba chóir duit iarracht a dhéanamh go praiticiúil ná mura bhfuil go leor acmhainní córais ag do fhreastalaí, php-fpm nó apache, mar shampla, cuimhne nó próiseálaí, seiceáil an RAM saor in aisce ag baint úsáide as an ordú free :

 $ free -h

Is féidir leat an t-ualach LAP a fháil amach leis an ordú htop :

 $ htop

Má fheiceann tú go bhfuil PHP ag glacadh an t-am LAP ar fad, ansin tá fadhb ann le hacmhainní freastalaí. Is féidir leat triail inneall an tsuímh a dhéanamh amach, an acmhainn a bharrfheabhsú, nó freastalaí VPS cumhachtach a roghnú.

Is é an dara rogha ná má bhí sé beartaithe ionas go n-oibreodh an script ar feadh i bhfad. Sa chás seo, ní mór duit Nginx a chumrú chun fanacht le freagra ó Apache nó php-fpm. Chun an fhadhb a réiteach i gcás php-fpm, ní gá duit ach dhá líne a chur leis an mbloc cumraíochta fastgci:

 fastcgi_send_timeout 300; fastcgi_read_timeout 300;

Ciallaíonn 300 300 soicind, don chuid is mó de na scripteanna is leor é seo, ach más gá ní bheidh sé deacair níos mó a shocrú freisin. Chomh maith leis sin, is féidir leis an earráid 504 tarlú nuair a úsáidtear Nginx mar seachfhreastalaí do Apache nó aon fhreastalaí gréasáin eile, ansin ní mór duit freisin a chumrú an t-am istigh seachfhreastalaí.

Cuir na línte seo leis an rannán server :

 proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

Sa chás seo, tá teorainn ama de 600 soicind againn.

Anois ní mór dúinn Nginx a atosú:

 $ sudo systemctl restart nginx

Cúis eile agus a réiteach má tá an script reoite. Má ritheann tú an script duit féin, feicfidh tú láithreach go bhfuil sé reoite, ach má tharlaíonn earráid den sórt sin i measc úsáideoirí, is fadhb níos tromchúisí é seo. Is féidir leat a fheiceáil má bhíonn earráidí dá leithéid ag d’úsáideoirí agus cá háit a dtarlaíonn siad ag baint úsáide as an ordú:

 $ fgrep -i " 504 " /var/log/nginx/access.log

Uaireanta is féidir faisnéis níos mionsonraithe a fheiceáil in error.log :

 $ fgrep -i " 504 " /var/log/nginx/error.log

Ina theannta sin, má tá an fhadhb i php-fpm, is féidir leat a rianú cé na scripteanna atá ag rith go mall ag baint úsáide as an fheidhm slow-log .

Chun é a ghníomhachtú, cuir na línte seo a leanas le do chumraíocht linne:

 $ sudo vi /etc/php-fpm.d/www.conf slowlog = /var/log/php-fpm/www-slow.log request_slowlog_timeout = 5s

Comhlánaíonn sé seo na treoracha.