2026 yılında bir FiveM rol yapma sunucusu işletiyorsanız, haritalar (MLO), yüksek detaylı araçlar, EUP kıyafet paketleri ve özel ses dosyalarıyla birlikte sunucu boyutunuzun 10 GB ile 25 GB arasına ulaşmış olması kaçınılmazdır. Ancak harika bir topluluğa ve içerik zenginliğine sahip olsanız bile, yeni bir oyuncunun sunucunuza bağlanırken "Downloading Assets" ekranında 15-20 dakika beklemesi veya bağlantı zaman aşımına (timeout) uğraması, oyuncu kaybının en büyük nedenidir.
FXServer’ın dahili web sunucusu dosya dağıtımında oldukça sınırlıdır. Bu rehberde, sunucu işlemcinizi (CPU) ve bant genişliğinizi rahatlatacak, dosyaları ışık hızında iletecek FastDL (Harici Dosya Sunucusu) ve Nginx Tersine Proxy (Reverse Proxy) / CDN mimarisini adım adım kurmayı öğreneceksiniz.
FastDL ve CDN Mimarisi Neden Gereklidir?
Varsayılan olarak FiveM istemcisi bir sunucuya bağlandığında, stream/ klasörlerindeki tüm assetleri doğrudan FXServer’ın kendi portu (30120) üzerinden çeker. Sunucuya aynı anda 10 yeni oyuncu bağlandığında şunlar yaşanır:
- 1Ağ Doygunluğu (Network Saturation): FXServer oyun paketlerini (tick verilerini) ve devasa araç dosyalarını aynı soket üzerinden iletmeye çalışır, bu da oyun içindeki aktif oyuncuların lag ve desync yaşamasına neden olur.
- 2Düşük İndirme Hızı: FXServer statik dosya iletimi için optimize edilmemiştir; Nginx veya Cloudflare gibi profesyonel web sunucularının sunduğu Gzip/Brotli sıkıştırma,
HTTP/2veyaHTTP/3 (QUIC)paralelleştirme avantajlarından yoksundur. - 3Bağlantı Kopmaları: Büyük bir .yft veya .ytd dosyası inerken gecikme yaşanırsa FiveM istemcisi indirmeyi iptal eder ve
CURL error 56hatası fırlatır.
Nginx tabanlı bir FastDL mimarisi devreye girdiğinde, oyun trafiği FXServer'da kalırken, tüm dosya transferi doğrudan Nginx web sunucusu veya CDN üzerinden karşılanır.
Adım 1: Nginx Web Sunucusunu Hazırlama ve Yapılandırma
FastDL için sunucunuzda (veya ayrı bir dosya/web sunucusunda) Nginx kurulu olmalıdır. Ubuntu/Debian sistemlerde terminal üzerinden Nginx kurulumunu tamamladıktan sonra konfigürasyon dosyasını oluşturalım.
/etc/nginx/sites-available/fivem-fastdl.conf dosyasını oluşturun ve aşağıdaki optimize edilmiş konfigürasyonu uygulayın:
# FiveM FastDL & Static Cache Yapılandırması
proxy_cache_path /var/cache/nginx/fivem levels=1:2 keys_zone=fivem_cache:100m max_size=20g inactive=7d use_temp_path=off;
server {
listen 80;
listen [::]:80;
server_name fastdl.sunucualanadiniz.com;
# İsteğe bağlı SSL yönlendirmesi (HTTPS önerilir)
# listen 443 ssl http2;
# ssl_certificate /etc/letsencrypt/live/fastdl.sunucualanadiniz.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/fastdl.sunucualanadiniz.com/privkey.pem;
access_log /var/log/nginx/fivem_fastdl_access.log;
error_log /var/log/nginx/fivem_fastdl_error.log warn;
# Büyük asset dosyaları için zaman aşımlarını artırın
client_max_body_size 100M;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
location /files/ {
proxy_pass http://127.0.0.1:30120/files/;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Önbellekleme Kuralları
proxy_cache fivem_cache;
proxy_cache_valid 200 304 7d;
proxy_cache_valid any 1m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cache-Status $upstream_cache_status;
# Byte-range desteği (Büyük dosyalarda indirme kopmasını engeller)
proxy_force_ranges on;
}
}Yapılandırmayı kaydedip aktif edin:
sudo ln -s /etc/nginx/sites-available/fivem-fastdl.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxproxy_cache_valid 200 304 7d; satırı, FiveM dosyalarınızın Nginx önbelleğinde 7 gün boyunca saklanmasını sağlar. Böylece bir dosya ilk defa indirildikten sonra bir daha asla FXServer diskinden okunmaz, doğrudan Nginx RAM ve SSD önbelleğinden yıldırım hızında istemciye servis edilir.Adım 2: Cloudflare ve CDN Yapılandırması
Eğer fastdl.sunucualanadiniz.com alt alan adını Cloudflare arkasına alacaksanız, FiveM mimarisine uygun özel ayarlar yapmanız gerekir:
- 1SSL/TLS Modu:
FullveyaFull (Strict)olarak seçilmelidir. - 2Bypass Rules:
fastdl.sunucualanadiniz.com/files/*yolu için Cloudflare Dashboard > Caching > Cache Rules sekmesinden bir kural oluşturun:
- Cache Eligibility: *Eligible for cache*
- Edge TTL: *Respect origin headers* (veya 7 gün)
- 3⚠️ Önemli Uyarı: Cloudflare'in Rocket Loader veya Auto Minify özelliklerini FastDL alt alan adınız için mutlaka devre dışı bırakın. Bu modüller FiveM'in binary dosya paketlerini bozabilir.
Adım 3: server.cfg Dosyasını Güncelleme
Nginx veya CDN katmanınız hazır olduğunda, FXServer'a dosyaları kendi portundan değil, hazırladığınız FastDL adresi üzerinden dağıtmasını söylemeniz gerekir.
Sunucunuzun ana dizininde yer alan server.cfg dosyasını açın ve aşağıdaki parametreyi ekleyin:
# =========================================================
# Dexta Store - 2026 FastDL & CDN Yapılandırması
# =========================================================
# FXServer'ın harici dosya dağıtım adresi (Sonunda '/' olmamalıdır)
fileserver_add ".*" "http://fastdl.sunucualanadiniz.com/files"
# Alternatif olarak HTTPS kullanıyorsanız:
# fileserver_add ".*" "https://fastdl.sunucualanadiniz.com/files"fileserver_add komutunda regex deseni olarak ".*" kullanmak, tüm script ve mapping dosyalarınızın Nginx üzerinden çekilmesini sağlar. Adresin doğru çalıştığını doğrulamak için tarayıcınızdan http://fastdl.sunucualanadiniz.com/files/ adresine gittiğinizde Nginx 404 veya FiveM yanıtı almalısınız. Bağlantı reddedildi hatası alıyorsanız güvenlik duvarı (UFW/Firewall) ayarlarınızı kontrol edin.FastDL Kurulumunun Başarılı Olduğunu Doğrulama
Sunucunuzu yeniden başlattıktan sonra bir istemciyle sunucuya bağlanın ve aşağıdaki yöntemlerle sistemin devrede olduğunu kontrol edin:
- 1F8 İstemci Konsolu: Bağlantı esnasında F8 konsolunu açtığınızda dosya indirme bağlantılarının
http://fastdl.sunucualanadiniz.com/files/...şeklinde göründüğünü teyit edin. - 2Nginx Erişim Logları: Terminalden
tail -f /var/log/nginx/fivem_fastdl_access.logkomutunu çalıştırın. Oyuncu bağlandıkça HTTP 200 veya 304 durum kodlarıylaHITya daMISSönbellek kayıtlarının aktığını görmelisiniz.
Eğer bu optimizasyonlar, sunucu tarafı ağ yapılandırmaları ve sunucu optimizasyonlarıyla sıfırdan uğraşacak teknik zamanınız yoksa; altyapısı eksiksiz optimize edilmiş, tak-çalıştır mimarideki [DxAV1 - Roleplay Paketi](/urun/dxav1-roleplay-paketi) çözümümüzü inceleyebilir veya doğrudan profesyonel ekibimizden [Developerlik Hizmeti](/urun/developerlik-hizmeti) alabilirsiniz.
Sıkça Sorulan Sorular (SSS)
1. FastDL kurduktan sonra sunucumdaki bir aracı veya haritayı güncellersem oyuncular eski dosyayı mı indirir?
Hayır. FiveM dosyaları dosya içeriğinin hash özetine göre adlandırır. Bir YTD veya YTF dosyasını değiştirdiğinizde dosya hash değeri değişir. FXServer yeni bir hash talep edeceği için Nginx eski cache'i atlar ve güncel dosyayı doğrudan indirip önbelleğe alır.
2. FastDL'i FXServer ile aynı fiziksel sunucuda barındırabilir miyim?
Evet. Zaten en yaygın yöntem budur. Nginx, FXServer ile aynı makinede çalışır; port 80/443'ü Nginx yönetirken, FXServer 30120 portunda yalnızca oyun mantığını yürütür. Nginx'in CPU ve bellek tüketimi statik dosyalarda son derece düşüktür.
3. fileserver_add komutunu ekledim ancak oyuncular sunucuya girerken 'Failed to handshake' hatası alıyor, sebebi nedir?
Bu durum genellikle Nginx konfigürasyonundaki proxy_pass hedef portunun yanlış olmasından veya Nginx'in FXServer portuna (30120) erişememesinden kaynaklanır. Nginx sunucunuz ile FXServer arasındaki yerel bağlantının açık olduğundan ve DNS yönlendirmesinin tam oturduğundan emin olun.
