Начини плаћања Abuse

Исправљање 504 гатеваи тиме оут Нгинк

20.02.2024, 23:31

Грешка 504 Гатеваи Тимеоут у Нгинк-у значи да сервер који ради Нгинк није могао да прими одговор од прокси сервера у наведеном временском периоду. Ово се обично дешава зато што прокси сервер није у могућности да обради захтев у датом времену или због проблема са везом између Нгинк-а и прокси сервера.

Зашто се појављује 504 Гатеваи Тимеоут?

Грешка се јавља када Нгинк сервер ради у прокси режиму. Ово се дешава када користите пхп-фпм или Апацхе. Ако преведемо са енглеског на руски, добијамо следеће - прекорачено је време чекања на одговор са сервера.

Неколико разлога за ово понашање:

  • ПХП скрипта или на другом језику је потпуно замрзнута и неће вратити никакав одговор;
  • скрипта ради веома дуго, али Нгинк има интервал конфигурисан да ресетује везу ако циљни сервер не одговори на захтев у оквиру додељених линија;
  • сервер је преоптерећен и нема времена да опслужи све клијенте или да врати одговоре на све Нгинк захтеве.

Хајде сада да разговарамо о томе шта се може учинити и како да решимо грешку 504 Гатеваи Тимеоут-а.

Како поправити временско ограничење 504 гатеваи-а Нгинк?

Прва ствар коју треба да испробате у пракси је ако ваш сервер, пхп-фпм или апацхе нема довољно системских ресурса, на пример, меморије или процесора, проверите слободну РАМ меморију помоћу команде free :

 $ free -h

Оптерећење ЦПУ-а можете сазнати помоћу htop команде:

 $ htop

Ако видите да ПХП заузима сво ЦПУ време, онда постоји проблем са ресурсима сервера. Можете покушати да откријете механизам сајта, оптимизујете ресурс или изаберете моћан ВПС сервер.

Друга опција је да је било планирано да би сценарио дуго радио. У овом случају, потребно је да конфигуришете Нгинк да чека одговор од Апацхе-а или пхп-фпм-а. Да бисте решили проблем у случају пхп-фпм, потребно је само да додате две линије у фастгци конфигурациони блок:

 fastcgi_send_timeout 300; fastcgi_read_timeout 300;

300 значи 300 секунди, за већину скрипти ово је довољно, али ако је потребно, такође неће бити тешко подесити више. Такође, грешка 504 се може појавити када се Нгинк користи као прокси за Апацхе или било који други веб сервер, тада такође морате да конфигуришете временско ограничење проксија.

Додајте ове редове у одељак server :

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

У овом случају имамо временско ограничење од 600 секунди.

Сада морамо поново покренути Нгинк:

 $ sudo systemctl restart nginx

Још један разлог и његово решење ако је скрипта замрзнута. Ако сами покренете скрипту, одмах ћете видети да је замрзнута, али ако се таква грешка догоди међу корисницима, онда је ово озбиљнији проблем. Можете да видите да ли ваши корисници наилазе на такве грешке и где се појављују помоћу команде:

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

Детаљније информације се понекад могу видети у error.log :

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

Даље, ако је проблем у пхп-фпм-у, можете пратити које скрипте се покрећу споро користећи уграђену функцију slow-log .

Да бисте га активирали, додајте следеће линије у конфигурацију базена:

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

Овим су упутства завршена.