FastCGI CentOS 5-6 Timeout 500 Internal & 504 Gateway Error Solved – Cözümü

Merhaba Arkadaşlar,

Bu sayfayı okuyorsanız muhtemelen 500 internal server error ve/ya 504 gateway time-out nginx problemi canınızı epeyce sıkmış demektir. Şimdi bunlara biraz göz atalım:

Solved – NGINX 502 Bad Gateway Error Hatası ve Çözümü

500 Internal Server Error Hatasının Başlıca Sebepleri

Bu hatanın birden fazla sebebi vardır sık karşılaşılanları ise:

  1. .htaccess: sitenizde kurulu olan sistemin .htaccess dosyasını kullanarak çalışması gerekiyorsa, bu dosya sunucunuzda olmayabilir ya da içerisindeki kodlar uygun olmayabilir. Bu durumda (varsa) yönetim paneliniz üzerinden yoksa manuel yeni bir .htaccess  dosyası oluşturmanız gerekir.
  2. CHMOD: sitenize ait dosyaların chmod ayarları kullanılan sisteme ve/veya sunucuza uygun olmayabilir. Genel ayarları: klasör izinleri için 755 dosyalar için 644 olmalıdır. Ftp programı üzerinden giriş yaparak da düzenleyebilirsiniz.
  3. Kodlamasitenizle bağlantılı çalışan herhangi bir sayfada hatalı kodlama varsa örneğin: sonsuz döngü, ve/veya işlem süreci uzun olan kodlamalarda sunucu varsayılan zaman aşım değerinden dolayı 500 Internal Server Error Hatası ile karşılaşırsınız. (en sık görülen nedendir.)
  4. Bot: özel görevler için yapılmış olan bot sistemleri ya da import gibi işlemlerde sunucu varsayılan time-out değeri olan 30-45 saniyelik zaman aşımında karşılaşabilirsiniz. Bunun için kullanılan yazılımı ya da sunucu varsayılan konfigürasyon ayarlarındaki time-out değerini düzenlememiz gerekecek.

Elbette öncelikli çözüm hatayı bulup, gidermektir örn: kodlama ile ilgili sorun yaşamışsanız bunu düzeltmeniz gerekir lakin geçici bir çözüm sunmak veya özel bir çalışma yapmanız gerekiyorsa (xml entegrasyonu gibi) bu varsayılan time-out süresini güncelleyebiirsiniz.

Not: bu varsayılan time-out süresinin aynı zamanda bir güvenlik betiği olduğunu unutmayınız.

Çözüm:

  • /etc/httpd/conf.d klasörü içerisinde bulunan fcgid.conf dosyasını açın ve
  • FcgidIOTimeout 45 değerini istediğiniz ölçüde yükseltin. Örneğin: FcgidIOTimeout 180 olabilir. Kendi sunucumdaki değerleri ise aşağıda paylaşıyorum:
    => /etc/httpd/conf.d/fcgid.conf

<IfModule mod_fcgid.c>

<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>

FcgidIPCDir /var/run/mod_fcgid/sock
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

 FcgidIdleTimeout 160
  FcgidProcessLifeTime 120
  FcgidMaxProcesses 20
  FcgidMaxProcessesPerClass 8
  FcgidMinProcessesPerClass 0
  FcgidConnectTimeout 240
  FcgidIOTimeout 260
  FcgidInitialEnv RAILS_ENV production
  FcgidIdleScanInterval 10

</IfModule>

Daha sonra ssh bağlantısını ya da sunucu kontrol panelini kullanarak sunucu servislerini yeniden başlatabilirsiniz.

SSH kodu:

  • service httpd restart

 

504 Gateway Time-Out Nginx Hatası

Bu hata ile karşılaşıyorsanız, siteniz üzerinde gerçekleşen bir işlemin zaman aşımına uğraması sonucunda, proxy okuyucu varsayılan time-out değerinden dolayı nginx sonlandırıcı mesajı ile karşılaşırsınız ama arka planda sunucu o işlemi yapmaya devam eder. Şimdi de bu hatanın çözümüne bakalım.

Çözüm:

  • /etc/nginx/conf.d klasörüne giriş yapın,
  • vhost_nginx.conf <= isminde yeni bir dosya oluşturun ve bu dosyanın içerisine
  • proxy_read_timeout 300;     <= yazıp dosyayı kaydedin.
  • Daha sonra ssh bağlantısını ya da sunucu panelini kullanarak nginx servislerini yeniden başlatabilirsiniz.

SSH Kodu:

  • /etc/init.d/nginx restart

Bu makalenin cevap verdiği sorular aşağıdaki gibi olabilir:

  1. 500  internal server error How  do Solved
  2. 500  internal server error Sorunu Nasıl Çözülür ?
  3. 500  internal server error Hatasının Sebebi Nedir ?
  4. 504 gateway time-out nginx Error How do Solved?
  5. 504 gateway time-out nginx Error Sorunu nasıl Çözülür ?
  6. 504 Gateway time-out Hatasının Sebebi ?
  7. 504 Gateway Time-out hatasının çözümü

Herhangi bir sorunda iletişime geçmekten çekinmeyiniz, herkese iyi çalışmalar.

Javascript Otomatik İleri Sayaç / JS Auto Count + Up

Merhaba Aarkadaşlar,

Aşağıda paylaşacağım kod grubu geri sayım sayacının tersidir yani, saat mantığında mevcut andan itibaren ileriye doğru saniye saniye artar ve saniye doğrultusunda dakikayı tetikler, bu kadar sade ve kullanımı oldukça basittir

<label id=”minutes”>00</label>:<label id=”seconds”>00</label>
    <script type=”text/javascript”>
        var minutesLabel = document.getElementById(“minutes”);
        var secondsLabel = document.getElementById(“seconds”);
        var totalSeconds = 0;
        setInterval(setTime, 1000);

        function setTime()
        {
            ++totalSeconds;
            secondsLabel.innerHTML = pad(totalSeconds%60);
            minutesLabel.innerHTML = pad(parseInt(totalSeconds/60));
        }

        function pad(val)
        {
            var valString = val + “”;
            if(valString.length < 2)
            {
                return “0” + valString;
            }
            else
            {
                return valString;
            }
        }
    </script>

Java Scanner Sınıfı Kullanımı

Java’da kütüphaneler paket olarak adlandırılır.Paketler sistematik olarak sınıflandırılmışlardır ve bu sınıflara ulaşım kolaylığı sağlanmıştır.Javada herhangi bir sınıfı kullanabilmek için ilk önce import etmek gerekir.Import şu şekilde yapılır.

import java.util.Scanner;

// sadece Scanner sınıfını import eder

import java.util.*;

// java.util paketindeki bütün sınıfları import eder

Scanner nesnesi farklı kurucu metodlarlada kullanılır.

  • Scanner(File kaynakDosya)
  • Scanner(InputStream kaynak)
  • Scanner(Readable kaynak)
  • Scanner(String kaynakString)

 

Scanner kullanarak klavyeden giriş almak için System.in InputSystem kullanılır.Scanner klaye kullanımı;

Scanner klavye = new Scanner (System.in);

“klavye” değişken adı olup istediğiniz değeri girebilirsiniz.Bu sınıfın çeşitli metodları vardır.

nextInt metodu klavyeden bir int değeri okumak ve değişkene atamak için kullanılır.

int sayi = klavye.nextInt;

nextDouble metodu klavyeden bir double değeri okumak ve değişkene atamak için kullanılır.

double sayi = klavye.nextDouble;

next metodu String atamak için kullanılır.

String isim = klavye.next();

nextLine metodu da String atmak için kullanılır next’ten farkı bütün satırı alır next ise sadece girilen tek kelimeyi alır.

String isim = klavye.nextLine();

Diğer bazı Scanner metodları

public Scanner(File f)

public Scanner(String s)

public int nextInt()

public short nextShort()

public long nextLong()

public double nextDouble()

public float nextFloat()

public String next()

public String nextLine()

public boolean hasNext()

import java.util.Scanner;
public class Scan {
public static void main(String[] args) {
Scanner klavye = new Scanner(System.in);
System.out.println(“2 Sayi girin”);
int a = klavye.nextInt();
int b = klavye.nextInt();
System.out.println(“Toplam =”+(a+b));
}

}