İçeriğe geç

Proxy Kullanırken 502 Bad Gateway Hatası Nasıl Düzeltilir

Гайды
Proxy Kullanırken 502 Bad Gateway Hatası Nasıl Düzeltilir

Proxy kullanırken alınan 502 Bad Gateway hatası, ağ geçidi görevi gören proxy sunucusunun upstream sunucudan veya hedef siteden geçersiz bir yanıt aldığını gösterir. Bu sorunu çözmek için sistematik bir teşhis yaklaşımı gerekir: hatanın yerel istemci yapılandırmasından mı, proxy sağlayıcısının altyapısından mı yoksa hedef sunucunun anti-bot korumalarından mı kaynaklandığını belirlemelisiniz.

Proxy ortamlarında 502 hatasının mekaniği

Web scraping, SEO izleme veya genel proxy kullanımında "ağ geçidi" genellikle proxy sunucusunun kendisidir. Bir istek gönderdiğinizde, istek istemcinizden proxy'ye gider ve proxy onu hedef sunucuya iletir. Hedef sunucu bağlantıyı aniden keserse, bozuk bir HTTP başlığı döndürürse veya geçici olarak aşırı yüklenmişse, proxy isteği tamamlayamaz ve uygulamanıza 502 durum kodu döner.

404 (Not Found) veya 403 (Forbidden) hatalarının aksine 502, özellikle iki sunucu arasındaki iletişim kopukluğudur. GProxy gibi yüksek performanslı servisleri kullananlar için 502 görmek çoğu zaman şu anlama gelir: proxy aracı olarak doğru çalışıyor, ancak zincirdeki bir sonraki adımdan geçerli bir "handshake" veya yanıt almakta zorlanıyor. Bu sonraki adım bir giriş düğümü, bir back-connect sunucusu veya nihai hedef site olabilir.

Proxy zincirinin adım adım analizi

Modern proxy mimarileri genellikle birden fazla katman içerir. Tek bir istek yük dengeleyiciden, rotasyon yöneticisinden ve son olarak bir çıkış düğümünden geçebilir. 502 hatası bu noktaların herhangi birinde oluşabilir:

  • İstemciden yük dengeleyiciye: nadiren 502'ye yol açar; genellikle bağlantı zaman aşımıyla sonuçlanır.
  • Yük dengeleyiciden rotasyon yöneticisine: dahili yönlendirme tablosu yanlış yapılandırıldığında görülür.
  • Çıkış düğümünden hedef siteye: en yaygın neden; hedef site çıkış düğümünün IP'sini reddeder veya çıkış düğümü çevrimdışıdır.
Proxy kullanırken 502 Bad Gateway hatası nasıl düzeltilir

502 Bad Gateway hatalarının yaygın nedenleri

Kök nedeni belirlemek çözüme giden ilk adımdır. Hata mesajı genel olsa da, ortaya çıktığı bağlam ipucu verir. Aşağıdaki tablo, residential veya veri merkezi proxy'leri kullanırken 502 hatalarına yol açan başlıca etkenleri özetler.

Neden Açıklama Temel gösterge
Hedef sunucunun aşırı yüklenmesi Hedef sitede trafik yoğun ve proxy'nin isteğini işleyemiyor. Farklı proxy IP'lerinde aralıklı 502'ler.
Ölü IP Oturumunuza atanan belirli proxy IP'si çevrimdışı olmuş veya bağlantısı kesilmiş. Rotasyonlu proxy'ler çalışırken statik proxy'lerin hata vermesi.
Agresif WAF engellemesi Web Application Firewall'lar (örneğin Cloudflare) proxy imzalarını tespit edip bağlantıyı düşürür. Yanıtta "Cloudflare" başlıklarıyla birlikte gelen 502 hataları.
Bozuk başlıklar İstemci, proxy'nin veya hedef sunucunun ayrıştıramadığı başlıklar gönderiyor. Kullanılan proxy IP'sinden bağımsız olarak sürekli 502'ler.
DNS çözümleme hatası Proxy sunucusu hedef sitenin hostname'ini çözemiyor. Yalnızca belirli alan adlarında 502 hataları.

Sorunu izole etmek için teşhis adımları

Kodunuzu veya altyapınızı değiştirmeden önce, 502 hatasının kaynağını daraltmak için şu teşhis adımlarını uygulayın.

1. Proxy olmadan test edin

Hedef URL'ye kendi yerel IP'nizden veya farklı bir ağdan erişmeyi deneyin. Site yine 502 döndürüyorsa sorun tamamen hedef sunucu tarafındadır. Bu durumda hiçbir proxy yapılandırması sorunu çözmez; site yöneticisinin kendi sunucu sorunlarını gidermesini beklemeniz gerekir.

2. Proxy kimlik bilgilerini ve durumunu doğrulayın

GProxy panelinizde aboneliğin aktif göründüğünden ve IP whitelist'inizin veya kullanıcı adı/parola bilgilerinizin doğru olduğundan emin olun. Bazı middleware yapılandırmalarında ağ geçidi seviyesindeki kimlik doğrulama hatası, 407 (Proxy Authentication Required) yerine yanlışlıkla 502 olarak raporlanabilir.

3. Protokol uyumsuzluklarını kontrol edin

Doğru protokolü kullandığınızdan emin olun (HTTP, HTTPS veya SOCKS5). Yalnızca HTTP destekleyen bir proxy portuna, düzgün CONNECT tünellemesi olmadan HTTPS trafiği göndermek çoğu zaman 502 hatasını tetikler; çünkü proxy şifreli veri akışını yorumlayamaz.

Proxy kullanırken 502 Bad Gateway hatası nasıl düzeltilir

502 hataları için pratik çözümler

Hatanın büyük olasılıkla proxy-hedef etkileşimiyle ilgili olduğunu teşhis ettikten sonra aşağıdaki teknik çözümleri uygulayın.

Sağlam bir retry mantığı kurmak

502 hatalarının çoğu geçicidir; kısa süreli bir ağ aksaklığından veya belirli bir çıkış düğümünün hata vermesinden kaynaklanır. Bu nedenle en etkili çözüm akıllı bir yeniden deneme mekanizmasıdır. İsteği hemen tekrarlamayın; üstel geri çekilme (exponential backoff) stratejisi kullanın.

import requests
from urllib3.util import Retry
from requests.adapters import HTTPAdapter

def fetch_url_with_retry(url, proxy_url):
    session = requests.Session()
    # Retry stratejisi: 502, 503, 504 durumlarında yeniden dene
    retries = Retry(
        total=5,
        backoff_factor=1,
        status_forcelist=[502, 503, 504],
        raise_on_status=False
    )

    proxies = {
        "http": proxy_url,
        "https": proxy_url
    }

    session.mount("http://", HTTPAdapter(max_retries=retries))
    session.mount("https://", HTTPAdapter(max_retries=retries))

    try:
        response = session.get(url, proxies=proxies, timeout=10)
        return response
    except Exception as e:
        print(f"Request failed: {e}")
        return None

# GProxy ile örnek kullanım
proxy = "http://username:[email protected]:8000"
result = fetch_url_with_retry("https://api.targetsite.com/data", proxy)

Proxy rotasyon ayarlarını düzenlemek

Rotasyonlu bir proxy havuzu kullanıyor ve sık sık 502 alıyorsanız, rotasyon sıklığı çok yüksek olabilir veya "zombi" düğümlere denk geliyor olabilirsiniz. GProxy gibi kaliteli sağlayıcılar bunu en aza indirir, ancak riski şu yollarla daha da azaltabilirsiniz:

  • Oturum kalıcılığını artırın: aynı IP'yi birkaç dakika korumak için "sticky session" kullanın. Böylece sürekli yeni bağlantı kurmanın getirdiği ek yükten kurtulursunuz.
  • Bölgeye göre filtreleyin: bazen 502'ler, hedef sitenin CDN'inde sorun yaşayan belirli coğrafi bölgelerle sınırlıdır. GProxy ayarlarınızı farklı bir ülkeye veya şehre değiştirin.

İstek başlıklarını optimize etmek

Proxy'nin gönderdiği başlıklar eksik veya şüpheliyse hedef sunucular sıklıkla 502 döner. İsteğinizin gerçek bir tarayıcıdan geliyormuş gibi görünmesini sağlayın. Sık yapılan bir hata, varsayılan "python-requests" User-Agent'ını kullanmaktır; birçok WAF bunu bağlantıyı düşürerek engeller ve sonuçta proxy seviyesinde 502 oluşur.

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.5",
    "Accept-Encoding": "gzip, deflate, br",
    "Connection": "keep-alive",
    "Upgrade-Insecure-Requests": "1"
}

Gelişmiş sunucu tarafı yapılandırması

Kendi proxy sunucunuzu çalıştırıyor (örneğin Nginx veya Squid'i forward proxy olarak kullanıyor) ve 502 hataları görüyorsanız, sorun büyük olasılıkla dahili yapılandırmadadır. Nginx kullanıcıları için varsayılan buffer ve zaman aşımı ayarları karmaşık proxy zincirleri için çoğu zaman fazla kısıtlayıcıdır.

Nginx proxy buffer'ları ve zaman aşımları

Nginx proxy olarak çalışırken upstream'den gelen yanıt ayrılan buffer'lara sığmayacak kadar büyükse, yanıtı kesip 502 döndürebilir. Bu değerleri nginx.conf dosyanızda artırın:

proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

proxy_read_timeout özellikle kritiktir. Hedef site yanıt üretmek için 30 saniye harcıyorsa ancak proxy'niz 10 saniyede zaman aşımına uğrayacak şekilde yapılandırılmışsa, proxy bağlantıyı kapatır ve istemciye 502 döner.

502'lerden kaçınmak için doğru proxy türünü seçmek

Kullandığınız proxy türü, 502 hatalarının sıklığını belirgin biçimde etkiler. Veri merkezi proxy'leri daha hızlıdır ancak hedef siteler tarafından daha kolay tespit edilip engellenir; bu da bağlantı sıfırlanmalarına ve 502'lere yol açar. GProxy'nin sunduğu residential proxy'ler ise ISP tarafından atanmış gerçek IP'ler kullanır ve ağ geçidi hatalarına yol açan agresif WAF tepkilerini tetikleme olasılığı çok daha düşüktür.

GProxy, bir çıkış düğümünün 502 döndürüp döndürmediğini otomatik olarak tespit eden akıllı bir yönlendirme katmanı kullanır. Çoğu durumda altyapımız, hata uygulamanıza ulaşmadan önce isteği farklı bir düğüm üzerinden şeffaf biçimde yeniden dener; bu da yüksek hacimli scraping görevlerinde çok daha yüksek bir başarı oranı sağlar.

Karşılaştırma: veri merkezi ve residential dayanıklılığı

  • Veri merkezi proxy'leri: yüksek hız, ancak yüksek "yanma oranı". Bir alt ağ işaretlendiğinde 502 ve 403 hataları sürekli hale gelir.
  • Residential proxy'ler: daha iyi itibar. Bir IP 502 alsa bile (örneğin ev kullanıcısının yönlendiricisi yeniden başlamış olabilir), devasa havuz anında başarılı bir değişime imkân verir.
  • Mobil proxy'ler: en dayanıklısı. Mobil IP'ler binlerce kullanıcı tarafından paylaşılır; siteler bu IP'lerden gelen bağlantıları engellemek veya düşürmek konusunda çok isteksizdir, bu da IP tabanlı engellemeden kaynaklanan 502'leri neredeyse tamamen ortadan kaldırır.

Öne çıkan sonuçlar

502 Bad Gateway hatası, proxy ile hedef arasındaki bir iletişim kopukluğunun işaretidir. Can sıkıcı olsa da genellikle yapılandırma değişiklikleri ve sağlam kodlama pratikleriyle çözülebilir.

  • Kaynağı belirleyin: hatanın evrensel mi (hedef site kapalı) yoksa proxy'ye özgü mü (IP engelli veya ölü) olduğunu saptayın.
  • Retry uygulayın: geçici 502'leri otomatik olarak ele almak için kodunuzda üstel geri çekilme ve durum kodu filtrelemesi kullanın.
  • Başlıklarınızı kontrol edin: hedef güvenlik duvarları tarafından düşürülmemek için isteklerinizin gerçek tarayıcı davranışını taklit ettiğinden emin olun.
  • Kaliteli altyapıdan yararlanın: ağ geçidi hatalarını tetikleyen engelli düğümlere denk gelme olasılığını azaltmak için GProxy'nin residential veya mobil havuzlarını kullanın.

Pratik ipucu 1: 502'lerin sıklığını daima izleyin. Ani bir artış genellikle scraping deseninizin tespit edildiğini gösterir; User-Agent'ı değiştirmenin veya istek hızınızı düşürmenin zamanı gelmiştir.

Pratik ipucu 2: back-connect proxy kullanıyorsanız port değiştirmeyi deneyin. Farklı portlar çoğu zaman farklı giriş düğümleri üzerinden yönlendirilir ve bu da sağlayıcının ağındaki yerel bir 502 sorununu aşmanızı sağlayabilir.

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.