{"id":5812,"date":"2026-10-05T10:20:48","date_gmt":"2026-10-05T07:20:48","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/?p=5812"},"modified":"2026-10-05T06:25:45","modified_gmt":"2026-10-05T03:25:45","slug":"502-bad-gateway-php-fpm-hatasi-proxy-teshisi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/502-bad-gateway-php-fpm-hatasi-proxy-teshisi\/","title":{"rendered":"502 Bad Gateway Hatas\u0131: PHP-FPM ve Proxy Te\u015fhisi"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div class=\"aiw-summary\">\n<p class=\"aiw-box-title\">H\u0131zl\u0131 \u00f6zet<\/p>\n<p>502 Bad Gateway, \u00e7o\u011fu zaman DNS sorunu de\u011fildir. Reverse proxy&#8217;nin (Nginx veya Apache gibi \u00f6n web sunucusunun) PHP-FPM&#8217;e ya da arka u\u00e7 uygulamas\u0131na ge\u00e7erli bir yan\u0131t alamad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<ul>\n<li>\u00d6nce 502 yan\u0131t\u0131n\u0131 hangi katman\u0131n \u00fcretti\u011fini ve hata zaman\u0131n\u0131 loglardan belirleyin.<\/li>\n<li>Unix socket kullan\u0131yorsan\u0131z socket dosyas\u0131n\u0131n varl\u0131\u011f\u0131n\u0131 ve web sunucusunun eri\u015fim iznini kontrol edin.<\/li>\n<li>TCP upstream kullan\u0131yorsan\u0131z PHP-FPM&#8217;in ger\u00e7ekten ilgili adres ve portta dinledi\u011fini do\u011frulay\u0131n.<\/li>\n<li>PHP-FPM havuzu doluysa veya s\u00fcre\u00e7ler kilitlenmi\u015fse ba\u011flant\u0131 reddedilebilir ya da zaman a\u015f\u0131m\u0131na u\u011frayabilir.<\/li>\n<li>De\u011fi\u015fiklikten sonra ayn\u0131 URL&#8217;yi, PHP-FPM logunu ve proxy logunu birlikte kontrol ederek sonucu do\u011frulay\u0131n.<\/li>\n<\/ul>\n<\/div>\n<p>WordPress siteniz taray\u0131c\u0131da 502 Bad Gateway g\u00f6steriyor ve DNS kay\u0131tlar\u0131 do\u011fru g\u00f6r\u00fcn\u00fcyorsa sorunu DNS panelinde aramak yerine istek zincirini ay\u0131rman\u0131z gerekir. Ziyaret\u00e7i \u00f6nce DNS ile do\u011fru sunucuya y\u00f6nlenir, ard\u0131ndan reverse proxy iste\u011fi PHP-FPM&#8217;e iletir. Hata \u00e7o\u011funlukla bu ikinci a\u015famada ortaya \u00e7\u0131kar.<\/p>\n<p>Bu yaz\u0131da 502 Bad Gateway PHP-FPM hatas\u0131n\u0131 socket eri\u015fimi, TCP upstream, PHP-FPM havuzu, zaman a\u015f\u0131m\u0131 ve proxy yap\u0131land\u0131rmas\u0131 \u00fczerinden te\u015fhis edeceksiniz. Ama\u00e7 t\u00fcm sunucu ayarlar\u0131n\u0131 de\u011fi\u015ftirmek de\u011fil, belirtiye uyan en dar d\u00fczeltmeyi yap\u0131p sonucu do\u011frulamakt\u0131r.<\/p>\n<div id=\"toc_container\" role=\"navigation\" aria-label=\"Table of Contents\" data-nosnippet class=\"toc_transparent no_bullets toc_numbered toc_title_center\"><p class=\"toc_title\">\u0130\u00e7indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#502_hatasinda_DNS_ile_PHP-FPM8217i_nasil_ayirirsiniz\"><span class=\"toc_number toc_depth_1\">1.<\/span> 502 hatas\u0131nda DNS ile PHP-FPM&#8217;i nas\u0131l ay\u0131r\u0131rs\u0131n\u0131z?<\/a><\/li><li><a href=\"#Once_5028217nin_gercek_nedenini_loglardan_bulun\"><span class=\"toc_number toc_depth_1\">2.<\/span> \u00d6nce 502&#8217;nin ger\u00e7ek nedenini loglardan bulun<\/a><ul><li><a href=\"#Proxy_logunda_hangi_ifadeler_ne_anlatir\"><span class=\"toc_number toc_depth_2\">2.1.<\/span> Proxy logunda hangi ifadeler ne anlat\u0131r?<\/a><\/li><\/ul><\/li><li><a href=\"#Unix_socket_kullanan_PHP-FPM_baglantisini_duzeltme\"><span class=\"toc_number toc_depth_1\">3.<\/span> Unix socket kullanan PHP-FPM ba\u011flant\u0131s\u0131n\u0131 d\u00fczeltme<\/a><ul><li><a href=\"#Socket_gercekten_var_mi\"><span class=\"toc_number toc_depth_2\">3.1.<\/span> Socket ger\u00e7ekten var m\u0131?<\/a><\/li><li><a href=\"#Socket_izinlerini_nasil_kontrol_edersiniz\"><span class=\"toc_number toc_depth_2\">3.2.<\/span> Socket izinlerini nas\u0131l kontrol edersiniz?<\/a><\/li><\/ul><\/li><li><a href=\"#TCP_upstream_ve_PHP-FPM_dinleme_portunu_inceleme\"><span class=\"toc_number toc_depth_1\">4.<\/span> TCP upstream ve PHP-FPM dinleme portunu inceleme<\/a><\/li><li><a href=\"#PHP-FPM_havuzu_doluysa_502_neden_olusur\"><span class=\"toc_number toc_depth_1\">5.<\/span> PHP-FPM havuzu doluysa 502 neden olu\u015fur?<\/a><\/li><li><a href=\"#Timeout_proxy_yapilandirmasi_ve_uygulama_hatasini_ayirma\"><span class=\"toc_number toc_depth_1\">6.<\/span> Timeout, proxy yap\u0131land\u0131rmas\u0131 ve uygulama hatas\u0131n\u0131 ay\u0131rma<\/a><\/li><li><a href=\"#Izleme_uc_noktasi_ile_canli_durumu_dogrulama\"><span class=\"toc_number toc_depth_1\">7.<\/span> \u0130zleme u\u00e7 noktas\u0131 ile canl\u0131 durumu do\u011frulama<\/a><\/li><li><a href=\"#WordPress_ve_WooCommerce_sitelerinde_ozel_belirtiler\"><span class=\"toc_number toc_depth_1\">8.<\/span> WordPress ve WooCommerce sitelerinde \u00f6zel belirtiler<\/a><\/li><li><a href=\"#Sik_Sorulan_Sorular\"><span class=\"toc_number toc_depth_1\">9.<\/span> S\u0131k Sorulan Sorular<\/a><ul><li><a href=\"#502_hatasi_her_zaman_PHP-FPM8217in_kapali_oldugu_anlamina_mi_gelir\"><span class=\"toc_number toc_depth_2\">9.1.<\/span> 502 hatas\u0131 her zaman PHP-FPM&#8217;in kapal\u0131 oldu\u011fu anlam\u0131na m\u0131 gelir?<\/a><\/li><li><a href=\"#PHP_surumunu_yukseltmek_5028217yi_cozer_mi\"><span class=\"toc_number toc_depth_2\">9.2.<\/span> PHP s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltmek 502&#8217;yi \u00e7\u00f6zer mi?<\/a><\/li><li><a href=\"#502_ile_504_arasindaki_fark_nedir\"><span class=\"toc_number toc_depth_2\">9.3.<\/span> 502 ile 504 aras\u0131ndaki fark nedir?<\/a><\/li><li><a href=\"#CLI_cron_calisirken_PHP-FPM_neden_dolu_gorunur\"><span class=\"toc_number toc_depth_2\">9.4.<\/span> CLI cron \u00e7al\u0131\u015f\u0131rken PHP-FPM neden dolu g\u00f6r\u00fcn\u00fcr?<\/a><\/li><\/ul><\/li><li><a href=\"#502_teshisi_icin_kisa_kontrol_listesi\"><span class=\"toc_number toc_depth_1\">10.<\/span> 502 te\u015fhisi i\u00e7in k\u0131sa kontrol listesi<\/a><\/li><\/ul><\/div>\n<h2><span id=\"502_hatasinda_DNS_ile_PHP-FPM8217i_nasil_ayirirsiniz\">502 hatas\u0131nda DNS ile PHP-FPM&#8217;i nas\u0131l ay\u0131r\u0131rs\u0131n\u0131z?<\/span><\/h2>\n<p>DNS, alan ad\u0131n\u0131n hangi IP adresine \u00e7\u00f6z\u00fcmlenece\u011fini belirler. PHP-FPM ise web sunucusunun PHP kodunu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ba\u011fland\u0131\u011f\u0131 FastCGI i\u015flem y\u00f6neticisidir. DNS do\u011fru sunucuya gidiyor ancak proxy bu sunucudaki PHP-FPM&#8217;e ula\u015fam\u0131yorsa taray\u0131c\u0131 yine 502 g\u00f6rebilir.<\/p>\n<p>\u0130lk ayr\u0131m i\u00e7in ayn\u0131 iste\u011fi alan ad\u0131yla ve m\u00fcmk\u00fcnse do\u011frudan yerel web sunucusuna g\u00f6nderin. A\u015fa\u011f\u0131daki komut yaln\u0131zca g\u00f6zlem yapar; alan ad\u0131, port ve Host ba\u015fl\u0131\u011f\u0131n\u0131 kendi ortam\u0131n\u0131za g\u00f6re de\u011fi\u015ftirin.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">curl -I https:\/\/ornekalanadiniz.tld\/<\/code><\/pre>\n<p>Yan\u0131tta 502 g\u00f6r\u00fcyorsan\u0131z tarih ve saati not edin. Yerel makinede \u00e7al\u0131\u015fan web sunucusuna test yapabiliyorsan\u0131z do\u011fru Host ba\u015fl\u0131\u011f\u0131yla \u015fu yakla\u015f\u0131m\u0131 kullanabilirsiniz:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">curl -I -H &#039;Host: ornekalanadiniz.tld&#039; http:\/\/127.0.0.1\/<\/code><\/pre>\n<p>\u0130ki istek de ayn\u0131 sunucudaki proxy&#8217;ye gidiyorsa bu test DNS&#8217;i tek ba\u015f\u0131na kan\u0131tlamaz; yaln\u0131zca iste\u011fin yerel proxy&#8217;ye kadar ula\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Daha g\u00fc\u00e7l\u00fc te\u015fhis i\u00e7in DNS \u00e7\u00f6z\u00fcm\u00fcn\u00fc kontrol edin, ard\u0131ndan proxy access ve error loglar\u0131nda ayn\u0131 zaman aral\u0131\u011f\u0131n\u0131 aray\u0131n.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">dig +short ornekalanadiniz.tld<\/code><\/pre>\n<p>Alan ad\u0131 beklemedi\u011finiz bir IP&#8217;ye \u00e7\u00f6z\u00fcl\u00fcyorsa \u00f6nce DNS ve \u00f6nbellek taraf\u0131n\u0131 d\u00fczeltin. Beklenen IP&#8217;ye \u00e7\u00f6z\u00fcl\u00fcyor fakat proxy logunda upstream ba\u011flant\u0131 hatas\u0131 bulunuyorsa DNS&#8217;i de\u011fi\u015ftirmek sorunu \u00e7\u00f6zmez. Bu noktada PHP-FPM ba\u011flant\u0131s\u0131n\u0131 inceleyin.<\/p>\n<div class=\"aiw-note aiw-note-tip\">\n<p class=\"aiw-box-title\">\u0130pucu<\/p>\n<p>HTTP durum kodu tek ba\u015f\u0131na yeterli de\u011fildir. 502&#8217;nin \u00fcretildi\u011fi katman\u0131 belirlemek i\u00e7in proxy error logu, PHP-FPM logu ve m\u00fcmk\u00fcnse uygulama logunu ayn\u0131 saat dilimi ve zaman aral\u0131\u011f\u0131yla kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<\/div>\n<h2><span id=\"Once_5028217nin_gercek_nedenini_loglardan_bulun\">\u00d6nce 502&#8217;nin ger\u00e7ek nedenini loglardan bulun<\/span><\/h2>\n<p>Bir proxy, upstream&#8217;den (arka u\u00e7tan) ge\u00e7erli HTTP veya FastCGI yan\u0131t\u0131 alamad\u0131\u011f\u0131nda 502 d\u00f6nd\u00fcrebilir. Ancak log sat\u0131r\u0131ndaki ayr\u0131nt\u0131, d\u00fczeltmenin y\u00f6n\u00fcn\u00fc de\u011fi\u015ftirir. <em>Connection refused<\/em>, <em>No such file or directory<\/em>, <em>Permission denied<\/em> ve <em>upstream timed out<\/em> ayn\u0131 sorunu anlatmaz.<\/p>\n<h3><span id=\"Proxy_logunda_hangi_ifadeler_ne_anlatir\">Proxy logunda hangi ifadeler ne anlat\u0131r?<\/span><\/h3>\n<ul>\n<li><strong>Connection refused:<\/strong> TCP ile ba\u011flan\u0131lan portta dinleyen bir servis yoktur veya servis ba\u011flant\u0131y\u0131 kabul etmiyordur.<\/li>\n<li><strong>No such file or directory:<\/strong> Proxy yap\u0131land\u0131rmas\u0131ndaki Unix socket yolu mevcut de\u011fildir. PHP-FPM durmu\u015f, farkl\u0131 bir socket kullan\u0131yor veya yol hatal\u0131 olabilir.<\/li>\n<li><strong>Permission denied:<\/strong> Socket mevcut olsa da web sunucusu kullan\u0131c\u0131s\u0131 dosyaya ya da \u00fcst dizinlerden birine eri\u015femiyordur.<\/li>\n<li><strong>Upstream timed out:<\/strong> PHP-FPM yan\u0131t \u00fcretmeden \u00f6nce s\u00fcre dolmu\u015ftur. Yo\u011fun havuz, yava\u015f sorgu, kilitlenen eklenti veya uzun s\u00fcren PHP i\u015flemi olas\u0131 nedenlerdir.<\/li>\n<li><strong>Invalid response:<\/strong> Upstream yan\u0131t\u0131 bozuk, eksik veya proxy&#8217;nin bekledi\u011fi protokole uygun de\u011fildir.<\/li>\n<\/ul>\n<p>Log dosyas\u0131n\u0131n yolu da\u011f\u0131t\u0131ma, panel uygulamas\u0131na ve sanal host yap\u0131land\u0131rmas\u0131na g\u00f6re de\u011fi\u015fir. Dosya yolunu varsaymak yerine etkin sanal host yap\u0131land\u0131rmas\u0131ndaki error_log tan\u0131m\u0131n\u0131 veya kulland\u0131\u011f\u0131n\u0131z panelin log b\u00f6l\u00fcm\u00fcn\u00fc kontrol edin. Sistem servisini y\u00f6netebildi\u011finiz bir VPS&#8217;te genel servis durumu ve son kay\u0131tlar i\u00e7in \u015fu komutlar kullan\u0131labilir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo systemctl status php8.2-fpm --no-pager\nsudo journalctl -u php8.2-fpm --since &quot;15 minutes ago&quot; --no-pager<\/code><\/pre>\n<p>Buradaki <code>php8.2-fpm<\/code> ad\u0131 \u00f6rnektir. Sunucunuzda <code>php8.1-fpm<\/code>, <code>php8.3-fpm<\/code> veya farkl\u0131 bir servis ad\u0131 olabilir. Yanl\u0131\u015f servis ad\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak ger\u00e7ek durumu g\u00f6stermez; servis y\u00f6netimi komutlar\u0131n\u0131 kullanmadan \u00f6nce etkin PHP-FPM s\u00fcr\u00fcm\u00fcn\u00fc ve servis ad\u0131n\u0131 belirleyin.<\/p>\n<p>WordPress&#8217;in kendi PHP hatalar\u0131 i\u00e7in uygulama logunu da kontrol edin. Bir eklentinin fatal error \u00fcretmesi \u00e7o\u011fu zaman do\u011frudan 502 yerine 500 veya bo\u015f sayfa g\u00f6r\u00fclmesine neden olur. Yine de PHP-FPM worker&#8217;lar\u0131n\u0131n \u00e7\u00f6kmesine ya da isteklerin uzamas\u0131na neden olabilece\u011fi i\u00e7in zaman e\u015fle\u015fmesi \u00f6nemlidir. WordPress taraf\u0131ndaki uygulama hatalar\u0131n\u0131 ay\u0131rmak i\u00e7in <strong><a href=\"https:\/\/www.dchost.com\/blog\/wordpress-beyaz-ekran-hatasi-cozumu-hosting-ve-php-tarafli-adim-adim-rehber\/\">WordPress beyaz ekran hatas\u0131 \u00e7\u00f6z\u00fcm\u00fc<\/a><\/strong> konusundaki ad\u0131mlar da yard\u0131mc\u0131 olabilir.<\/p>\n<h2><span id=\"Unix_socket_kullanan_PHP-FPM_baglantisini_duzeltme\">Unix socket kullanan PHP-FPM ba\u011flant\u0131s\u0131n\u0131 d\u00fczeltme<\/span><\/h2>\n<p>PHP-FPM ile proxy aras\u0131nda Unix socket kullan\u0131l\u0131yorsa ileti\u015fim bir dosya \u00fczerinden kurulur. Bu y\u00f6ntem yerel sunucularda yayg\u0131nd\u0131r; fakat PHP-FPM&#8217;in olu\u015fturdu\u011fu socket yolu ile proxy&#8217;nin ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 yol birebir ayn\u0131 olmal\u0131d\u0131r.<\/p>\n<h3><span id=\"Socket_gercekten_var_mi\">Socket ger\u00e7ekten var m\u0131?<\/span><\/h3>\n<p>\u00d6nce proxy yap\u0131land\u0131rmas\u0131ndaki <code>fastcgi_pass<\/code> veya e\u015fde\u011fer upstream tan\u0131m\u0131nda yazan yolu bulun. Ard\u0131ndan bu yolun mevcut olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo ls -l \/run\/php\/php8.2-fpm.sock\nsudo stat \/run\/php\/php8.2-fpm.sock<\/code><\/pre>\n<p>Dosya yoksa iki olas\u0131l\u0131\u011f\u0131 ay\u0131r\u0131n: PHP-FPM \u00e7al\u0131\u015fm\u0131yordur veya PHP-FPM farkl\u0131 bir socket yolu kullan\u0131yordur. Havuz yap\u0131land\u0131rmas\u0131ndaki <code>listen<\/code> de\u011ferini kontrol edin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo grep -R &quot;^[[:space:]]*listen[[:space:]]*=&quot; \/etc\/php\/8.2\/fpm\/pool.d\/<\/code><\/pre>\n<p>Da\u011f\u0131t\u0131m ve PHP s\u00fcr\u00fcm\u00fcne g\u00f6re dizin de\u011fi\u015febilir. Proxy&#8217;deki yol ile havuzdaki <code>listen<\/code> yolu ayn\u0131 de\u011filse \u00f6nce hangi yolun standart ve etkin oldu\u011funu belirleyin. Ard\u0131ndan yaln\u0131zca ilgili yap\u0131land\u0131rmay\u0131 d\u00fczeltin; birden fazla havuzun socket yolunu topluca de\u011fi\u015ftirmeyin.<\/p>\n<h3><span id=\"Socket_izinlerini_nasil_kontrol_edersiniz\">Socket izinlerini nas\u0131l kontrol edersiniz?<\/span><\/h3>\n<p>Socket mevcut oldu\u011fu halde <em>Permission denied<\/em> al\u0131yorsan\u0131z dosyan\u0131n sahibi, grubu ve modunu kontrol edin. \u00d6rnek bir \u00e7\u0131kt\u0131daki kullan\u0131c\u0131 ve grup adlar\u0131 sisteminize g\u00f6re farkl\u0131 olabilir:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo ls -l \/run\/php\/php8.2-fpm.sock\nnamei -l \/run\/php\/php8.2-fpm.sock<\/code><\/pre>\n<p>Web sunucusunun worker s\u00fcre\u00e7lerinin \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 socket&#8217;e eri\u015febilmelidir. Ancak do\u011frudan geni\u015f izinler vermek g\u00fcvenli bir varsay\u0131lan de\u011fildir. \u00d6nce web sunucusu kullan\u0131c\u0131 ad\u0131n\u0131, ard\u0131ndan PHP-FPM havuzunun <code>listen.owner<\/code>, <code>listen.group<\/code> ve <code>listen.mode<\/code> de\u011ferlerini kar\u015f\u0131la\u015ft\u0131r\u0131n. Bu ayarlar genellikle havuz dosyas\u0131nda bulunur.<\/p>\n<p>\u0130zin de\u011fi\u015fikli\u011fi yapmadan \u00f6nce ilgili havuz dosyas\u0131n\u0131 yedekleyin. \u00d6rne\u011fin:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo cp \/etc\/php\/8.2\/fpm\/pool.d\/www.conf \/etc\/php\/8.2\/fpm\/pool.d\/www.conf.bak<\/code><\/pre>\n<p>Sonra yaln\u0131zca gerekli owner, group veya mode de\u011ferini d\u00fczenleyin. Mode de\u011ferini herkes i\u00e7in yaz\u0131labilir h\u00e2le getirmek yerine proxy kullan\u0131c\u0131s\u0131n\u0131n gerekli grup eri\u015fimini sa\u011flamak daha dar bir d\u00fczeltmedir. Yap\u0131land\u0131rma s\u00f6zdizimini da\u011f\u0131t\u0131m\u0131n\u0131z\u0131n destekledi\u011fi test komutuyla do\u011frulay\u0131n; ard\u0131ndan yaln\u0131zca PHP-FPM&#8217;i yeniden y\u00fckleyin veya yeniden ba\u015flat\u0131n.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo php-fpm8.2 -t\nsudo systemctl reload php8.2-fpm<\/code><\/pre>\n<p><code>php-fpm8.2<\/code> ve test se\u00e7ene\u011fi sisteminizde farkl\u0131 olabilir. Reload desteklenmiyorsa servis dok\u00fcmantasyonundaki g\u00fcvenli y\u00f6ntemi kullan\u0131n. De\u011fi\u015fiklikten sonra socket&#8217;in yeniden olu\u015ftu\u011funu ve izinlerinin bekledi\u011finiz gibi kald\u0131\u011f\u0131n\u0131 kontrol edin. Ard\u0131ndan sorunlu URL&#8217;yi tekrar \u00e7a\u011f\u0131r\u0131p proxy error logunda yeni bir socket hatas\u0131 olu\u015fmad\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/p>\n<div class=\"aiw-note aiw-note-warning\">\n<p class=\"aiw-box-title\">Dikkat<\/p>\n<p>Socket i\u00e7in 777 gibi geni\u015f izinler vermek 502&#8217;yi ge\u00e7ici olarak gizleyebilir, fakat PHP-FPM eri\u015fimini gereksiz bi\u00e7imde a\u00e7ar. \u00d6nce do\u011fru kullan\u0131c\u0131, grup ve \u00fcst dizin eri\u015fimini belirleyin; de\u011fi\u015fikli\u011fi geri alabilece\u011finiz yede\u011fi saklay\u0131n.<\/p>\n<\/div>\n<h2><span id=\"TCP_upstream_ve_PHP-FPM_dinleme_portunu_inceleme\">TCP upstream ve PHP-FPM dinleme portunu inceleme<\/span><\/h2>\n<p>Baz\u0131 kurulumlarda proxy, Unix socket yerine <code>127.0.0.1:9000<\/code> gibi bir TCP adresine ba\u011flan\u0131r. Bu durumda socket izinlerine bakmak sonu\u00e7 vermez. PHP-FPM&#8217;in ger\u00e7ekten beklenen adreste dinleyip dinlemedi\u011fini kontrol etmelisiniz.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo ss -ltnp | grep &#039;:9000&#039;<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 yoksa PHP-FPM ilgili portta dinlemiyor olabilir. Havuz dosyas\u0131ndaki <code>listen<\/code> de\u011ferini ve servis durumunu kar\u015f\u0131la\u015ft\u0131r\u0131n:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo grep -R &quot;^[[:space:]]*listen[[:space:]]*=&quot; \/etc\/php\/8.2\/fpm\/pool.d\/\nsudo systemctl status php8.2-fpm --no-pager<\/code><\/pre>\n<p>Proxy <code>127.0.0.1:9000<\/code>&#8216;a, PHP-FPM ise ba\u015fka bir porta veya yaln\u0131zca Unix socket&#8217;e ayarl\u0131ysa iki taraf\u0131n ba\u011flant\u0131 noktas\u0131 e\u015fle\u015fmez. En dar \u00e7\u00f6z\u00fcm, mevcut mimariyi koruyarak yaln\u0131zca yanl\u0131\u015f upstream adresini d\u00fczeltmektir. Socket&#8217;ten TCP&#8217;ye ge\u00e7mek gibi daha geni\u015f bir de\u011fi\u015fiklik yapmadan \u00f6nce bunun ger\u00e7ekten gerekli oldu\u011fundan emin olun.<\/p>\n<p>Port dinleniyor olsa bile ba\u011flant\u0131 testi PHP-FPM&#8217;in HTTP sunucusu olmad\u0131\u011f\u0131n\u0131 unutmay\u0131n. Porta <code>curl<\/code> ile HTTP iste\u011fi g\u00f6ndermek anlaml\u0131 bir uygulama testi de\u011fildir. Burada ama\u00e7 dinleme durumunu ve proxy logunu birlikte de\u011ferlendirmektir. Proxy&#8217;nin ba\u011flant\u0131 reddedildi\u011fini yazd\u0131\u011f\u0131 anda <code>ss<\/code> \u00e7\u0131kt\u0131s\u0131nda port yoksa servis veya <code>listen<\/code> ayar\u0131 \u00f6ne \u00e7\u0131kar; port mevcutsa yanl\u0131\u015f adres, a\u011f politikas\u0131 ya da havuz kapasitesi ara\u015ft\u0131r\u0131l\u0131r.<\/p>\n<h2><span id=\"PHP-FPM_havuzu_doluysa_502_neden_olusur\">PHP-FPM havuzu doluysa 502 neden olu\u015fur?<\/span><\/h2>\n<p>PHP-FPM havuzu, PHP isteklerini \u00e7al\u0131\u015ft\u0131ran worker s\u00fcre\u00e7lerinin grubudur. <code>pm.max_children<\/code> bu havuzda ayn\u0131 anda \u00e7al\u0131\u015fabilecek \u00fcst s\u0131n\u0131r\u0131 belirler. T\u00fcm worker&#8217;lar uzun s\u00fcren isteklerle me\u015fgulse yeni istekler bekler; proxy&#8217;nin bekleme s\u00fcresi doldu\u011funda 502 veya baz\u0131 kurulumlarda 504 g\u00f6r\u00fclebilir.<\/p>\n<p>Bu durum PHP-FPM&#8217;in tamamen durmu\u015f oldu\u011fu anlam\u0131na gelmez. Servis aktif g\u00f6r\u00fcn\u00fcrken havuz kapasitesi dolmu\u015f olabilir. FPM logunda <em>server reached pm.max_children<\/em> benzeri uyar\u0131lar proxy logundaki timeout kay\u0131tlar\u0131yla ayn\u0131 zamana denk geliyorsa kapasite bask\u0131s\u0131 g\u00fc\u00e7lenir.<\/p>\n<p>\u00d6nce hangi isteklerin uzun s\u00fcrd\u00fc\u011f\u00fcn\u00fc belirleyin. WordPress&#8217;te a\u011f\u0131r eklentiler, d\u0131\u015f API \u00e7a\u011fr\u0131lar\u0131, yava\u015f veritaban\u0131 sorgular\u0131 veya b\u00fcy\u00fck y\u00f6netim i\u015flemleri bu tabloyu olu\u015fturabilir. PHP-FPM web worker&#8217;lar\u0131 ile CLI cron veya kuyruk worker&#8217;lar\u0131n\u0131 birbirine kar\u0131\u015ft\u0131rmay\u0131n. HTTP iste\u011fi yapmayan bir CLI cron i\u015fi FPM worker t\u00fcketmez; fakat ayn\u0131 veritaban\u0131n\u0131 kilitleyerek web isteklerini uzatabilir.<\/p>\n<p>Bu noktada <code>pm.max_children<\/code> de\u011ferini rastgele y\u00fckseltmek dar bir te\u015fhis de\u011fildir. Her yeni worker bellek t\u00fcketir. \u00d6nce RAM kullan\u0131m\u0131n\u0131, s\u00fcre\u00e7 say\u0131s\u0131n\u0131, istek s\u00fcrelerini ve PHP-FPM uyar\u0131lar\u0131n\u0131 \u00f6l\u00e7\u00fcn. Havuz ayarlar\u0131n\u0131n hesaplanmas\u0131 i\u00e7in <strong><a href=\"https:\/\/www.dchost.com\/blog\/wordpress-ve-woocommerce-icin-php-fpm-ayarlari-pm-max-children\/\">pm.max_children ve pm.max_requests hesaplama rehberi<\/a><\/strong> ilgili kapasite s\u0131n\u0131rlar\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<p>Sorun tek bir eklentinin uzun iste\u011fiyse eklentiyi devre d\u0131\u015f\u0131 b\u0131rakmadan \u00f6nce yedek ve geri d\u00f6n\u00fc\u015f plan\u0131 olu\u015fturun. \u00dcretim WordPress sitesinde veri de\u011fi\u015ftiren bir i\u015flem yapacaksan\u0131z veritaban\u0131 ve dosya yede\u011finin kullan\u0131labilir oldu\u011funu kontrol edin. Daha d\u00fc\u015f\u00fck riskli ilk ad\u0131m, yava\u015f iste\u011fi ve ilgili PHP hata kayd\u0131n\u0131 belirlemek; ard\u0131ndan eklenti veya sorgu d\u00fczeltmesini kontroll\u00fc bi\u00e7imde uygulamakt\u0131r.<\/p>\n<h2><span id=\"Timeout_proxy_yapilandirmasi_ve_uygulama_hatasini_ayirma\">Timeout, proxy yap\u0131land\u0131rmas\u0131 ve uygulama hatas\u0131n\u0131 ay\u0131rma<\/span><\/h2>\n<p>Proxy&#8217;nin upstream&#8217;e ba\u011flanamamas\u0131 ile ba\u011flan\u0131p zaman\u0131nda yan\u0131t alamamas\u0131 farkl\u0131d\u0131r. <em>Connection refused<\/em> ba\u011flant\u0131 a\u015famas\u0131n\u0131, <em>timed out<\/em> ise \u00e7o\u011fu zaman yan\u0131t s\u00fcresinin doldu\u011funu i\u015faret eder. Bu ayr\u0131m, servis yeniden ba\u015flatmak yerine \u00f6nce uygulama ve kaynak kullan\u0131m\u0131n\u0131 incelemenizi sa\u011flar.<\/p>\n<p>PHP-FPM&#8217;e ba\u011flant\u0131 ba\u015far\u0131l\u0131 fakat WordPress iste\u011fi uzun s\u00fcr\u00fcyorsa proxy timeout de\u011ferini art\u0131rmak yaln\u0131zca belirtinin g\u00f6r\u00fcnmesini geciktirebilir. \u00d6nce PHP-FPM slow log, uygulama logu ve veritaban\u0131 yava\u015f sorgu kay\u0131tlar\u0131nda ayn\u0131 iste\u011fi aray\u0131n. Sorun ger\u00e7ekten beklenen uzun bir i\u015flemse timeout de\u011fi\u015fikli\u011fi kontroll\u00fc ve gerek\u00e7eli yap\u0131labilir; de\u011ferleri s\u0131n\u0131rs\u0131z y\u00fckseltmek havuzun daha uzun s\u00fcre me\u015fgul kalmas\u0131na neden olur.<\/p>\n<p>Proxy yap\u0131land\u0131rmas\u0131nda FastCGI parametrelerinin eksik olmas\u0131 \u00e7o\u011fu zaman 502&#8217;nin ana sebebi de\u011fildir; yine de yanl\u0131\u015f <code>SCRIPT_FILENAME<\/code>, yanl\u0131\u015f site k\u00f6k\u00fc veya hatal\u0131 PHP s\u00fcr\u00fcm\u00fc farkl\u0131 hatalara yol a\u00e7abilir. Sanal hostun do\u011fru PHP-FPM havuzuna ba\u011fland\u0131\u011f\u0131n\u0131 ve ba\u015fka bir sitenin socket&#8217;ini kullanmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/p>\n<p>Yap\u0131land\u0131rmay\u0131 de\u011fi\u015ftirmeden \u00f6nce etkin konfig\u00fcrasyonu test edin. Nginx veya Apache i\u00e7in test komutlar\u0131 kurulumunuza g\u00f6re de\u011fi\u015febilir. \u00d6rnek olarak Nginx kullan\u0131lan bir VPS&#8217;te:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>Test ba\u015far\u0131s\u0131zsa reload yapmay\u0131n; \u00f6nce g\u00f6sterilen dosya ve sat\u0131rdaki s\u00f6zdizimini d\u00fczeltin. Test ba\u015far\u0131l\u0131 olduktan sonra kontroll\u00fc reload uygulay\u0131n ve ayn\u0131 iste\u011fi yeniden deneyin. De\u011fi\u015fiklikten sonra 502 devam ediyorsa eski yede\u011fe d\u00f6n\u00fcp yeni hipotezi ayr\u0131 test etmek, \u00fcst \u00fcste ayar biriktirmekten daha sa\u011fl\u0131kl\u0131d\u0131r.<\/p>\n<div class=\"aiw-note aiw-note-example\">\n<p class=\"aiw-box-title\">\u00d6rnek senaryo<\/p>\n<p>Varsay\u0131m: Nginx, <code>\/run\/php\/php8.2-fpm.sock<\/code> socket&#8217;ine ba\u011flan\u0131yor; PHP-FPM ise <code>\/run\/php\/php8.3-fpm.sock<\/code> olu\u015fturuyor. Proxy logunda <em>No such file or directory<\/em> g\u00f6r\u00fcl\u00fcyor ve alan ad\u0131 beklenen sunucuya \u00e7\u00f6z\u00fcl\u00fcyor. Bu senaryoda DNS de\u011fi\u015fikli\u011fi yap\u0131lmaz. \u00d6nce etkin PHP-FPM <code>listen<\/code> de\u011feri ile Nginx <code>fastcgi_pass<\/code> yolu kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r, yaln\u0131zca yanl\u0131\u015f yol d\u00fczeltilir, <code>nginx -t<\/code> ve sorunlu URL ile do\u011frulama yap\u0131l\u0131r.<\/p>\n<\/div>\n<h2><span id=\"Izleme_uc_noktasi_ile_canli_durumu_dogrulama\">\u0130zleme u\u00e7 noktas\u0131 ile canl\u0131 durumu do\u011frulama<\/span><\/h2>\n<p>PHP-FPM status veya ping \u00f6zelli\u011fi, havuzun canl\u0131 durumunu g\u00f6zlemlemek i\u00e7in kullan\u0131labilir. Ancak bu \u00f6zelli\u011fi etkinle\u015ftirmek ile web sunucusunda g\u00fcvenli eri\u015fim yolunu tan\u0131mlamak ayr\u0131 ad\u0131mlard\u0131r.<\/p>\n<p>\u00d6nce havuz yap\u0131land\u0131rmas\u0131nda status veya ping ayar\u0131n\u0131n etkin olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. Bu u\u00e7 noktay\u0131 do\u011frudan internete a\u00e7may\u0131n. Nginx ya da Apache taraf\u0131nda yaln\u0131zca yerel y\u00f6netim eri\u015fimine, VPN&#8217;e veya kimlik do\u011frulamal\u0131 g\u00fcvenli bir y\u00f6netim yoluna izin verin. U\u00e7 noktada s\u00fcre\u00e7 say\u0131s\u0131 ve istek durumu gibi operasyonel bilgiler bulunabilece\u011finden eri\u015fim kapsam\u0131 s\u0131n\u0131rl\u0131 olmal\u0131d\u0131r.<\/p>\n<p>Bu \u00f6zellik mevcut de\u011filse 502 te\u015fhisi i\u00e7in zorunlu de\u011fildir. Proxy ve PHP-FPM loglar\u0131, servis durumu ve socket\/port kontrolleri \u00e7o\u011fu sorunu ortaya \u00e7\u0131kar\u0131r. \u0130zleme etkinle\u015ftirilecekse havuz dosyas\u0131n\u0131 yedekleyin, de\u011fi\u015fikli\u011fi test edin ve d\u0131\u015f eri\u015fimi engelleyen web sunucusu kural\u0131n\u0131 ayr\u0131ca do\u011frulay\u0131n.<\/p>\n<h2><span id=\"WordPress_ve_WooCommerce_sitelerinde_ozel_belirtiler\">WordPress ve WooCommerce sitelerinde \u00f6zel belirtiler<\/span><\/h2>\n<p>WordPress ana sayfas\u0131 \u00e7al\u0131\u015f\u0131rken y\u00f6netim paneli, \u00fcr\u00fcn arama veya \u00f6deme ad\u0131m\u0131 502 veriyorsa sorun t\u00fcm PHP isteklerinde olmayabilir. Bu yollar\u0131n daha a\u011f\u0131r sorgular, d\u0131\u015f servis \u00e7a\u011fr\u0131lar\u0131 veya uzun s\u00fcren sepet i\u015flemleri \u00fcretmesi m\u00fcmk\u00fcnd\u00fcr. \u00d6nce hatan\u0131n t\u00fcm URL&#8217;lerde mi, yoksa tek bir \u00f6zellikte mi g\u00f6r\u00fcld\u00fc\u011f\u00fcn\u00fc belirleyin.<\/p>\n<p>WooCommerce taraf\u0131nda stok, kargo, \u00f6deme veya vergi servisine yap\u0131lan d\u0131\u015f \u00e7a\u011fr\u0131lar gecikirse PHP-FPM worker&#8217;\u0131 yan\u0131t bekler. Bu durum tek ba\u015f\u0131na DNS hatas\u0131 de\u011fildir; d\u0131\u015f servise eri\u015fim, uygulama timeout&#8217;u ve havuz dolulu\u011fu birlikte incelenmelidir. \u0130lgili eklentiyi hemen silmek yerine yedek al\u0131n, loglarda hangi \u00e7a\u011fr\u0131n\u0131n uzad\u0131\u011f\u0131n\u0131 bulun ve gerekiyorsa staging ortam\u0131nda de\u011fi\u015fiklik yap\u0131n.<\/p>\n<p>Kal\u0131c\u0131 502 sonras\u0131nda \u00f6nbellek temizlemek tek ba\u015f\u0131na \u00e7\u00f6z\u00fcm de\u011fildir. \u00d6nce proxy&#8217;nin PHP-FPM&#8217;e ula\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n. \u00d6nbellek katman\u0131 eski bir 502 yan\u0131t\u0131n\u0131 sunuyorsa proxy ve uygulama cache ayarlar\u0131n\u0131 ayr\u0131ca inceleyin; fakat canl\u0131 hatan\u0131n kayna\u011f\u0131n\u0131 loglarla do\u011frulamadan cache silme i\u015flemlerini \u00e7o\u011faltmay\u0131n.<\/p>\n<h2><span id=\"Sik_Sorulan_Sorular\">S\u0131k Sorulan Sorular<\/span><\/h2>\n<h3><span id=\"502_hatasi_her_zaman_PHP-FPM8217in_kapali_oldugu_anlamina_mi_gelir\">502 hatas\u0131 her zaman PHP-FPM&#8217;in kapal\u0131 oldu\u011fu anlam\u0131na m\u0131 gelir?<\/span><\/h3>\n<p>Hay\u0131r. PHP-FPM \u00e7al\u0131\u015f\u0131yor olabilir; yanl\u0131\u015f socket yolu, izin sorunu, dolu havuz veya uzun s\u00fcren istek nedeniyle proxy ge\u00e7erli yan\u0131t alam\u0131yor olabilir.<\/p>\n<h3><span id=\"PHP_surumunu_yukseltmek_5028217yi_cozer_mi\">PHP s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltmek 502&#8217;yi \u00e7\u00f6zer mi?<\/span><\/h3>\n<p>Yaln\u0131zca sorun s\u00fcr\u00fcmle uyumsuz bir PHP-FPM servisi veya yanl\u0131\u015f socket yap\u0131land\u0131rmas\u0131ysa yard\u0131mc\u0131 olabilir. Log ve etkin <code>listen<\/code> de\u011ferini kontrol etmeden s\u00fcr\u00fcm de\u011fi\u015ftirmek yeni uyumluluk sorunlar\u0131 do\u011furabilir.<\/p>\n<h3><span id=\"502_ile_504_arasindaki_fark_nedir\">502 ile 504 aras\u0131ndaki fark nedir?<\/span><\/h3>\n<p>502 genellikle proxy&#8217;nin upstream&#8217;den ge\u00e7ersiz yan\u0131t almas\u0131 veya ba\u011flant\u0131 kuramamas\u0131yla ili\u015fkilidir. 504 ise upstream&#8217;in zaman\u0131nda yan\u0131t vermedi\u011fini daha do\u011frudan ifade eder. Baz\u0131 proxy ve uygulama yap\u0131land\u0131rmalar\u0131nda belirtiler \u00f6rt\u00fc\u015febilece\u011fi i\u00e7in kesin ayr\u0131m log sat\u0131r\u0131nda yap\u0131lmal\u0131d\u0131r.<\/p>\n<h3><span id=\"CLI_cron_calisirken_PHP-FPM_neden_dolu_gorunur\">CLI cron \u00e7al\u0131\u015f\u0131rken PHP-FPM neden dolu g\u00f6r\u00fcn\u00fcr?<\/span><\/h3>\n<p>HTTP \u00e7a\u011fr\u0131s\u0131 yapmayan CLI cron do\u011frudan FPM worker t\u00fcketmez. Ancak ayn\u0131 veritaban\u0131, dosya veya harici servis \u00fczerinde gecikme olu\u015fturarak web isteklerinin daha uzun s\u00fcrmesine ve FPM havuzunun dolmas\u0131na katk\u0131da bulunabilir.<\/p>\n<h2><span id=\"502_teshisi_icin_kisa_kontrol_listesi\">502 te\u015fhisi i\u00e7in k\u0131sa kontrol listesi<\/span><\/h2>\n<ol>\n<li>Hatan\u0131n ba\u015flad\u0131\u011f\u0131 zaman\u0131 ve etkilenen URL&#8217;leri not edin.<\/li>\n<li>Alan ad\u0131n\u0131n beklenen IP&#8217;ye \u00e7\u00f6z\u00fcmlendi\u011fini kontrol edin.<\/li>\n<li>Proxy error logunda connection refused, socket, permission veya timeout ifadesini belirleyin.<\/li>\n<li>PHP-FPM servis ad\u0131n\u0131 ve durumunu do\u011frulay\u0131n.<\/li>\n<li>Unix socket kullan\u0131l\u0131yorsa yol, sahiplik, grup ve \u00fcst dizin izinlerini kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/li>\n<li>TCP upstream kullan\u0131l\u0131yorsa beklenen portun ger\u00e7ekten dinlendi\u011fini kontrol edin.<\/li>\n<li>FPM logunda havuz s\u0131n\u0131r\u0131, worker \u00e7\u00f6kmesi ve slow request uyar\u0131lar\u0131n\u0131 aray\u0131n.<\/li>\n<li>De\u011fi\u015fiklik yapacaksan\u0131z yap\u0131land\u0131rmay\u0131 yedekleyin, en dar ayar\u0131 de\u011fi\u015ftirin ve geri d\u00f6n\u00fc\u015f yolunu saklay\u0131n.<\/li>\n<li>Yap\u0131land\u0131rma testinden sonra ayn\u0131 URL&#8217;yi \u00e7a\u011f\u0131r\u0131n; proxy ve PHP-FPM loglar\u0131nda yeni hata olu\u015fmad\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/li>\n<\/ol>\n<p>Bu kontrollerden sonra h\u00e2l\u00e2 502 al\u0131yorsan\u0131z son de\u011fi\u015fiklikleri geri al\u0131p tek bir istek \u00f6rne\u011fi \u00fczerinden proxy logu, FPM logu ve uygulama logunu ayn\u0131 zaman damgas\u0131nda kar\u015f\u0131la\u015ft\u0131r\u0131n. B\u00f6ylece DNS, proxy, PHP-FPM ve WordPress katmanlar\u0131n\u0131 yeniden kar\u0131\u015ft\u0131rmadan bir sonraki d\u00fczeltmeyi se\u00e7ebilirsiniz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>WordPress ve PHP sitelerinde 502 Bad Gateway hatas\u0131n\u0131n DNS mi, reverse proxy mi, PHP-FPM socket&#8217;i mi yoksa havuz kapasitesi mi kaynakl\u0131 oldu\u011funu loglarla ay\u0131r\u0131n.<\/p>\n","protected":false},"author":4,"featured_media":5808,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[640,503,641,642,123,116],"class_list":["post-5812","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting","tag-502-bad-gateway","tag-nginx","tag-php-fpm","tag-reverse-proxy","tag-sunucu-yonetimi","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=5812"}],"version-history":[{"count":1,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5812\/revisions"}],"predecessor-version":[{"id":5814,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/5812\/revisions\/5814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/5808"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=5812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=5812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=5812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}