1. Hata Nedir ve Neden Olur?
"Connection Refused" hatası, Memcached servisinin çalışmıyor olduğu veya belirttiğiniz IP adresi veya port üzerinden bağlantının reddedildiği anlamına gelir. Memcached'e bağlanmaya çalıştığınızda bu hata ile karşılaşmak, genellikle bir bağlantı sorununun belirtisidir.
Peki, bu hata nasıl ortaya çıkar? İşte birkaç yaygın neden:
- Memcached servisi kapalı olabilir: Sunucuda çalışan Memcached servisi durdurulmuş veya çökmüş olabilir.
- Yanlış port numarası veya IP adresi: Memcached'in çalıştığı port numarasına veya IP adresine yanlış bağlantı sağlanıyor olabilir.
- Firewall engellemeleri: Sunucuda, bağlantıları engelleyen bir firewall olabilir.
- Yetersiz izinler: Memcached'e erişim izni verilmemiş olabilir.
2. Memcached Servisini Kontrol Edin
İlk yapmanız gereken şey, Memcached servisinin aktif olduğundan emin olmaktır. Eğer servisin çalışıp çalışmadığını kontrol etmek isterseniz, terminal üzerinden aşağıdaki komutu çalıştırabilirsiniz:
kopyalasudo systemctl status memcached
Eğer "inactive" veya "failed" gibi bir sonuç alırsanız, Memcached servisini başlatmak için şu komutu kullanabilirsiniz:
kopyalasudo systemctl start memcached
Bu komut, Memcached servisini yeniden başlatacaktır. Eğer servisin otomatik olarak başlamasını istiyorsanız, aşağıdaki komutu kullanarak servis başlangıcını yapılandırabilirsiniz:
kopyalasudo systemctl enable memcached
3. Firewall Ayarlarını Kontrol Edin
Sunucunuzda bir firewall varsa, Memcached'in bağlantı isteklerini engelliyor olabilir. Memcached, varsayılan olarak 11211 portunu kullanır. Eğer bu port engellenmişse, bağlantı kurmak mümkün olmaz.
Firewall'ı kontrol etmek için aşağıdaki komutları kullanabilirsiniz:
- UFW (Uncomplicated Firewall) kullanıyorsanız:
kopyalasudo ufw allow 11211/tcp
- FirewallD kullanıyorsanız:
kopyalasudo firewall-cmd --zone=public --add-port=11211/tcp --permanent sudo firewall-cmd --reload
Bu komutlar, Memcached'in kullandığı portu açacak ve bağlantınızı engellemeyen bir yapı oluşturacaktır.
4. Memcached Konfigürasyonunu Kontrol Edin
Bir başka yaygın sebep ise Memcached konfigürasyon dosyasındaki yanlış ayarlardır. Memcached'in doğru şekilde yapılandırıldığından emin olmak için konfigürasyon dosyasını kontrol etmelisiniz.
Memcached konfigürasyon dosyası genellikle `/etc/memcached.conf` veya `/etc/memcached` yolunda bulunur. Bu dosyada IP adresi ve port ayarlarının doğru yapıldığından emin olun. Eğer sadece localhost üzerinden erişim sağlıyorsanız, `-l 127.0.0.1` gibi bir ayar olması gerekebilir. Dış IP'ler üzerinden erişim sağlamayı planlıyorsanız, bu kısmı uygun şekilde düzenlemeniz gerekecek.
5. Memcached Portunun Erişilebilirliğini Test Edin
Eğer tüm yukarıdaki adımlar sorununuzu çözmediyse, Memcached portunun erişilebilirliğini kontrol etmeniz gerekir. `telnet` komutunu kullanarak bağlantıyı test edebilirsiniz:
kopyalatelnet 127.0.0.1 11211
Eğer bu komut çalışıyorsa, bağlantı sağlanmış demektir. Eğer "Connection Refused" hatası alıyorsanız, port üzerinde bir sorun olabilir.
6. Sunucu Kaynaklarını Kontrol Edin
Bazen Memcached "Connection Refused" hatasını almanızın sebebi, sunucunuzun kaynaklarının tükenmiş olmasıdır. Sunucunun RAM, CPU veya disk alanı yetersiz olduğunda Memcached doğru şekilde çalışamayabilir.
Sunucunuzun kaynaklarını kontrol etmek için şu komutları kullanabilirsiniz:
kopyalafree -h top df -h
Eğer kaynaklar düşükse, gereksiz süreçleri sonlandırarak veya sunucuyu yükselterek bu durumu düzeltebilirsiniz.
7. Son Kontroller ve Çözüm
Son olarak, tüm bu adımları tamamladıktan sonra hala "Connection Refused" hatasını alıyorsanız, aşağıdaki kontrolleri yapmayı unutmayın:
- Memcached’in logs dosyasını kontrol edin: `/var/log/memcached.log`
- Memcached’in yapılandırma dosyasındaki hataları gözden geçirin.
- Eğer bir proxy kullanıyorsanız, proxy ayarlarını kontrol edin.
Tüm bu adımları takip ederek, Memcached "Connection Refused" hatasını çözebilir ve uygulamanızın hızını artırmaya devam edebilirsiniz.