[REHBER] 🧠 Redis BungeeCluster ile Sınırsız Oyuncu Taşıma & Çökmez Proxy Kurulumu!

  • Konu başlatıcı Konu başlatıcı @LoGK_Shadoww
  • Başlangıç Tarihi Başlangıç Tarihi
  • Görüntülenme Görüntülenme 18 Görüntülenme

@LoGK_Shadoww

Moderatör
MC Yaşı
4 gün
Mesaj Sayısı
30
Konu Sayısı
14
Beğeni Sayısı
33
Trade Sayısı
0
Memleket
ANKARA
🚀 [DEV REHBER] Redis BungeeCluster ile Sınırsız Oyuncu Taşıma & Çökmez Proxy Kurulumu!

Selamlar değerli forum üyeleri ve sunucu sahipleri,

Sunucunuz büyüdükçe, Reklam/Yayıncı aldığınızda veya büyük bir Lobi / Skyblock ağı kurduğunuzda karşılaştığınız en büyük felaket nedir? Proxy (BungeeCord / Velocity) sunucusunun tek bir CPU çekirdeğine yüklenip RAM/CPU şişmesi yaşaması, çökmesi ve binlerce oyuncunun aynı anda oyundan düşmesidir.

Piyasada hemen hemen herkes klasik BungeeCord veya Velocity kurulumunu anlatıp geçer. Ancak kimse birden fazla Proxy sunucusunu Redis RAM veritabanı ile birbirine bağlamayı (Cluster), yükü 3-4 farklı proxy portuna dağıtmayı ve sunucunun çökme riskini %0'a indirmeyi anlatmaz!

🧠 1. Mimari Mantık: Klasik Sistem vs. Redis Cluster​


Klasik Sistemde Ne Olur?Tüm oyuncular tek bir Bungee/Velocity (Örn: Port 25565) üzerinden bağlanır. 400-500 aktif oyuncudan sonra Bungee tek çekirdeğe yüklendiği için TPS düşer, ping yükselir ve en küçük bir Bot/DDoS saldırısında tüm sunucu ağı patlar.

Redis Cluster Sisteminde Ne Olur?Aşağıdaki şemadaki gibi arkada 2, 3 veya 5 adet bağımsız Proxy (Velocity-1, Velocity-2, Velocity-3) çalışır. Oyuncular bu proxy'lere eşit dağıtılır. Redis RAM veritabanı ise bu proxy'lerin arkasında durarak hepsini birbirine "tek bir vücut" gibi bağlar.
  • Proxy-01 çökse bile: Oyuncular hiç fark etmeden Proxy-02'ye kayar, oyundan düşmez.
  • Global Komutlar: Proxy-01'deki oyuncu ile Proxy-02'deki oyuncu sorunsuz şekilde /msg, /glist atabilir veya partiye katılabilir.

🛠️ Adım 1: Redis Sunucusunu Kurma ve Sıkılaştırma (Linux/Ubuntu)​


Proxy'lerin birbiriyle mikro saniyeler içinde haberleşmesi için bellek içi (In-Memory) çalışan Redis veritabanını Linux sunucumuza kuruyoruz.

Terminalinize kök (root) yetkisiyle girin ve şu komutları sırasıyla çalıştırın:

Bash:
[HEADING=2]Paket listesini güncelleyip Redis'i indiriyoruz[/HEADING]
sudo apt update && sudo apt install redis-server -y

[HEADING=2]Redis'in sistem açılışında otomatik başlamasını sağlıyoruz[/HEADING]
sudo systemctl enable redis-server

Şimdi Redis config dosyasını düzenleyerek dışarıdan güvenli bağlantıya açalım:
Bash:
nano /etc/redis/redis.conf

Dosya içinde şu satırları bulun ve belirtildiği şekilde değiştirin:

Kod:
[HEADING=2]Sadece local yerine tüm IP'lerden gelen isteklere izin veriyoruz (Eğer proxy'ler farklı makinedeyse)[/HEADING]
bind 0.0.0.0

[HEADING=2]Güvenlik modunu kapatıp şifreli erişime geçiyoruz[/HEADING]
protected-mode no

[HEADING=2]Redis için ultra güçlü bir şifre tanımlayın (MUTLAKA DEĞİŞTİRİN)[/HEADING]
requirepass CokGucluRedisSifresi2026!

[HEADING=2]RAM sınırını aşmaması için maxmemory limiti koyuyoruz (Örn: 2GB RAM)[/HEADING]
maxmemory 2gbmaxmemory-policy allkeys-lru

Değişiklikleri kaydedip (CTRL+X -> Y -> Enter) Redis servisimi yeniden başlatıyoruz:
Bash:
sudo systemctl restart redis-server

⚙️ Adım 2: Proxy Sunucularında (Velocity/Bungee) Redis Konfigürasyonu​


Bu adımda kurduğumuz 2 veya daha fazla Proxy sunucusuna RedisBungee (BungeeCord için) veya RedisVelocity (Velocity için) eklentisini yüklüyoruz.

Proxy-01 Config Ayarı (plugins/RedisBungee/config.yml):

YAML:
[HEADING=2]Redis Veritabanı Bağlantı Bilgileri[/HEADING]
redis-server: "127.0.0.1" # Redis başka makinedeyse oranın IP'sini yazınredis-port: 6379redis-password: "CokGucluRedisSifresi2026!"

[HEADING=2]BU PROXY'NIN BENZERSİZ KİMLİĞİ (Çok Önemli!)[/HEADING]
server-id: "proxy-01"

[HEADING=2]Global Komut Senkronizasyonları[/HEADING]
register-bungee-commands: trueexempt-ip-addresses: []

[HEADING=2]Gelişmiş Ağ Ayarları[/HEADING]
multicast-events: trueping-passthrough: true

Proxy-02 Config Ayarı (plugins/RedisBungee/config.yml):İkinci proxy sunucunuzdaki config dosyasını da birebir aynı şekilde yapıyorsunuz. Sadece tek bir satırı değiştiriyorsunuz:

YAML:
server-id: "proxy-02"

🛡️ Adım 3: BungeeGuard ve Güvenlik Duvarı (IP-Forwarding)​


Ağımızda birden fazla Proxy olduğu için alt sunucularımızın (Lobi, Skyblock vb.) yetkisiz girişlere maruz kalmaması adına BungeeGuard kullanmak şarttır.

  1. BungeeGuard eklentisini tüm Proxy'lerinize ve alt sunucularınıza yükleyin.
  2. Proxy-01 açıldığında plugins/BungeeGuard/token.yml dosyasında oluşan gizli anahtarı (Token) kopyalayın.
  3. Bu anahtarı tüm Proxy'lerinize ve alt sunucularınızdaki plugins/BungeeGuard/config.yml dosyasına yapıştırın:
YAML:
[HEADING=2]Tüm proxy'lerin ortak kabul edilen token anahtarı[/HEADING]
allowed-tokens:

[LIST]
[*]"eX3a8K0Lp9Z2mN7qR5tY1vW4uI8oP0aS"
[/LIST]

🌐 Adım 4: HAProxy ile Yük Dengeleme (Load Balancing)​


Oyuncular sunucuya play.sunucunuz.com adresinden bağlandığında, onları otomatik olarak en az yoğun olan Proxy'ye yönlendirecek olan HAProxy katmanını kuruyoruz.

Linux terminalinde HAProxy'yi kurun:
Bash:
sudo apt install haproxy -y

/etc/haproxy/haproxy.cfg dosyasının en altına şu yük dengeleme kodlarını ekleyin:

Kod:
[HEADING=2]Oyuncuların Karşılandığı Giriş Portu[/HEADING]
frontend minecraft_frontendbind *:25565mode tcpoption tcplogdefault_backend minecraft_proxies

[HEADING=2]Trafiğin Dağıtılacağı Proxy Sunucuları[/HEADING]
backend minecraft_proxiesmode tcpbalance roundrobin # Oyuncuları sırayla 1-2-3 şeklinde eşit dağıtıroption tcp-check

# Proxy Sunucularınızın IP ve Portları<br>server proxy1 127.0.0.1:25566 check<br>server proxy2 127.0.0.1:25567 check<br>

HAProxy servisini başlatın:
Bash:
sudo systemctl restart haproxy

⚠️ Karşılaşılabilecek Hatalar ve Çözüm Yolları​


1. Redis Connection Refused (Bağlantı Reddedildi):

  • Sebep: Redis portu (6379) Linux güvenlik duvarı (UFW) tarafından engelleniyordur.
  • Çözüm: Terminalden sudo ufw allow 6379/tcp komutu ile geçiş izni verin.
2. Oyuncular Oyundan Düşerken "IP-Forwarding Error" Alıyor:

  • Sebep: HAProxy arkasından gelen oyuncuların gerçek IP'leri kayboluyordur.
  • Çözüm: Velocity kullanıyorsanız velocity.toml içinde haproxy-protocol = true ayarını aktif edin. BungeeCord kullanıyorsanız config.yml içinde proxy_protocol: true yapın.
3. Oyuncu Oyundayken Başka Proxy'deki Arkadaşına İstek Atamıyor:

  • Sebep: Redis üzerindeki şifreler (redis-password) proxy'ler arasında uyuşmuyordur.

💡 Özet ve Performans Değerlendirmesi​


Bu mimariyi kurduğunuzda:

  1. Tek Çekirdek Darboğazı Biter: 2.000 oyuncuyu 4 farklı Proxy'ye bölerek sıfır lag ile oynatabilirsiniz.
  2. Çökme Riski Sıfırlanır: Proxy-01 çökse bile HAProxy milisaniyeler içinde trafiği Proxy-02'ye kaydırır.
  3. Tam Senkronizasyon: Oyuncular hangi proxy'de olursa olsun tek bir sunucudaymış gibi sohbet edebilir, parti kurabilir.
Anlatımda takıldığınız, konfigürasyon sırasında hata aldığınız bir yer olursa konu altından log kayıtlarıyla birlikte sorabilirsiniz. Hepsine tek tek yanıt vereceğim!

İyi forumlar, bol oyunculu sunucular!

🏷️ Etiketler​

redis bungeecord, redis bungee, redis proxy sistemi, redis cluster, redis kurulumu, redis ayarları, redis sunucu kurulumu, redis linux kurulumu, redis ubuntu kurulumu, redis güvenlik ayarları, redis şifre ayarı, redis performans ayarı, redis ram ayarı, redis veritabanı, redis cache sistemi, minecraft redis, minecraft redis sistemi, minecraft redis bağlantısı, minecraft redis eklentisi, minecraft proxy ağı, minecraft proxy sistemi, minecraft proxy kurulumu, minecraft proxy geliştirme, minecraft proxy rehberi, minecraft büyük sunucu sistemi, minecraft network sistemi, minecraft network kurulumu, minecraft sunucu ağı, minecraft sunucu mimarisi, minecraft profesyonel sunucu, minecraft yüksek oyunculu sunucu, minecraft binlerce oyuncu, minecraft oyuncu kapasitesi artırma, minecraft oyuncu limiti artırma, minecraft lag azaltma, minecraft sunucu performans artırma, minecraft sunucu optimizasyon, minecraft sunucu optimizasyon rehberi, minecraft sunucu çökme önleme, minecraft sunucu stabilite, minecraft sunucu güvenlik, minecraft sunucu yönetimi, minecraft sunucu sahibi, minecraft network sahibi, minecraft geliştirici rehberi, minecraft dev rehberi, minecraft teknik rehber, minecraft ileri seviye rehber, minecraft bungee, bungeecord, bungeecord kurulumu, bungeecord ayarları, bungeecord proxy, bungeecord network, bungeecord sunucu ağı, bungeecord redis, bungeecord çoklu proxy, bungeecord cluster, velocity, velocity proxy, velocity kurulumu, velocity ayarları, velocity network, velocity redis, velocity proxy sistemi, velocity performans, velocity yüksek oyuncu, velocity sunucu ağı, çoklu proxy sistemi, proxy çoğaltma, proxy yük dağıtımı, proxy yük dengeleme, proxy çökme önleme, proxy yedekleme sistemi, proxy failover sistemi, proxy ağ yapısı, minecraft load balancing, minecraft yük dengeleme, minecraft trafik dağıtma, minecraft oyuncu yönlendirme, minecraft proxy dağıtımı, haproxy, haproxy kurulumu, haproxy minecraft, haproxy yük dengeleme, haproxy proxy sistemi, haproxy ayarları, linux sunucu, linux minecraft sunucu, ubuntu minecraft sunucu, ubuntu sunucu kurulumu, linux güvenlik duvarı, ufw ayarları, minecraft port ayarları, minecraft 25565 port, minecraft ip forwarding, minecraft ip yönlendirme, minecraft bungee ip forwarding, velocity haproxy protocol, minecraft güvenli bağlantı, bungeeguard, bungeeguard kurulumu, bungeeguard ayarları, minecraft proxy güvenliği, minecraft ddos koruma, minecraft bot saldırısı koruma, minecraft sunucu koruma, minecraft büyük network, minecraft network geliştirme, minecraft skyblock network, minecraft lobi sistemi, minecraft survival network
 
Bilgilendirici konu olmuş İlham katı.
 
Geri
En Üst