Gzip/Deflate Sıkıştırma Kullanımı NGINX & APACHE Web Server .htaccess

Sunuculardaki performansın öneminden söz etmeye hiç gerek yok artık hepimiz bunun bilincindeyiz.

Linux sunucularda Apache ve Nginx uzun süredir epeyce popüler durumda yakın gelecekte bu durum değişecek gibi görünse de şimdilik durum bundan ibaret.
Bu arada merak edenler olabilir ben yönetimini yaptığım tüm sunucularda Nginx kullanmaktayım.

Apache kullanan sunuculardaki Apache Sıkıştırma Modülü mod_deflate iken Nginx kullanan sunuculardaki Nginx sıkıştırma modülü; HttpGzipModule ‘dır ve modüller varsayılan olarak yüklü gelir yapılandırma ayarlarına göre bu durumlar değişiklik gösterse de aktif durumda olmayabilir.

Peki sıkıştırma nasıl etkinleştirilir? ya da biraz daha teknik terimle soruyu yinelemek gerekirse Gzip/Deflate Nasıl Kullanılır?

Gzip Nginx Kullananlar için //For Nginx  Web Server

NGINX SERVER WEB CONFIG

Nginx_How To Enable HttpGzipModule On Nginx To Optimize Page Speed

gzip ‘i etkilentiştirmek için //for active/enabled gzip

1.) /etc/nginx/nginx.conf

gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# Disable for IE < 6 because there are some known problems
gzip_disable "MSIE [1-6].(?!.*SV1)";

# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;

2.) SSH

# service nginx restart

3.) .htaccess update HttpGzipModule

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Apache kullananlar için; Deflate //FOR APACHE WEB SERVER Deflate

Apache mod_deflate Nasıl Açılır/Aktifleştirilir? // How to enable, Apache mod_deflate

apache_How To Enable mod_deflate On Apache To Optimize Page Speed

1.) /etc/httpd/conf/httpd.conf

LoadModule deflate_module modules/mod_deflate.so

2.) SSH Reset Service

# /etc/init.d/httpd restart
or
# service httpd restart

3.) .htaccess update mod_deflate

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

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.