Cuma, Aralık 6, 2024

Nginx’te Akıllı 404 Yönlendirmeleri: Map Yöntemi ile URL Bazlı Hata Sayfası Kontrolü

Nginx’te belirli URL’lerden gelen 404 isteklerini ana sayfaya yönlendirmek için map yöntemini kullanabiliriz. Bu yöntem, belirli URL kalıplarını tanımlamanıza ve bunları ana sayfaya yönlendirmenize olanak tanır. Üstelik normalden daha performanslı çalışarak NGINX üzerindeki süreçlerde sorun yaşatmaz. Önce http bloğu içerisine aşağıdaki tanımlamayı yapın. bu bizim kullanacağımız mapping olacak. Tüm değişikliği burada yapacağız. nginx.conf sırf bunun […]

NGINX’te Hotlink Koruması Nasıl Yapılır?

Hotlink koruması, bir web sitesinin dosyalarının (örneğin, resimler, videolar, belgeler) başka web siteleri tarafından izinsiz olarak kullanılmasını engelleyen bir güvenlik önlemidir. Bu tür izinsiz kullanım, genellikle “hotlinking” veya “leeching” olarak adlandırılır. Hotlinking, bir web sitesindeki bir dosyanın doğrudan URL’sini kullanarak kendi sitesinde göstermeyi içerir, bu da kaynak siteye ekstra bant genişliği yükü getirir. Sınırsız bant […]

NGINX Wordpress W3Cache Ayarları

W3Cache kullanırken normalde nginx üzerinde herhangi bir ayar yapmanıza gerek kalmaz, ancak gelişmiş yapılandırma kullanılırsa özellikle aşağıdaki gibi bir yapılandırma kullanmak zorundasınız. Örneğin JS ve CSS sıkıştırılması, bazı alanlarda kullanılan önbellek leme yöntemlerinin iyileştirilmesi hataların giderilmesi ve sayfaların gzip ile sıkıştırılması için kullanabilirsiniz. # BEGIN W3TC Minify cache location ~ /wp-content/cache/minify/.*\.js$ { types {} default_type […]

NGINX ile Proxy IP Adreslerinin Erişimlerinin Engellenmesi

Proxy adresleri kullanılarak günümüzde bin bir çeşit siber ataklar yapılabiliyor, bunlardan en fazla gözlemlediğimiz botnet saldırıları, brute-force ve directory fuzzing tabii bunlardan arta kalan vakitlerinde saldırganlar google dorking denemeleri yapmayı da ihmal etmiyor. En iyi ihtimalle site crawl işlemi de yapıyorlar. Listemiz her gün belirli aralıklarla güncellenmektedir, bu sebeple listeyi mümkün olduğunca sık güncellemek sizin […]

MediaWiki İçin NGINX Yapılandırması

Aşağıda yer alan Nginx kuralları /wiki/ olarak oluşturulan bir MediaWiki uygulaması üzerinde denenmiştir ve sorunsuz çalışmaktadır. Yapılandırmanızı kendinize göre değiştirmeyi ihmal etmeyiniz. Güvenlik yapılandırması yapılmamıştır. server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; set $base /var/www/example.com; root $base/public; # SSL ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; # security headers add_header X-XSS-Protection […]

Nginx “413 Request Entity Too Large” Hatası Nasıl Çözülür?

Dosya yükleme sırasında ortaya çıkan ve oldukça can sıkan bir problemdir, web sunucusu üzerinde hangi uygulama koşuyor olsa fark etmez. Gönderilen istek boyutunun çok yüksek olduğu bilgisi karşımıza sıklıkla gelir. Bunun çözümü ise NGINX de çok basittir. CloudFlare‘nin ücretsiz sürümü kullanılan bir web sitesinde client_max_body_size değeri 100 Megabyte geçemez. Bu sebeple örnek olarak aşağıdakini vereceğim. […]

Reverse Proxy Arkasında CORS Ayarlama

Reverse Proxy üzerinden çalışan servisler kimi zaman tutarsız bir şekilde CORS hatası alınmasına sebep olabiliyor, api isteklerinde olmazsa olmaz OPTIONS isteği Preflighted geçersiz oluyor ve sayfalar yüklenmiyor. Tabii ki bu durum her istekte meydana gelmiyor.(bilenler bilir pek hoş olmayan bir hatadır bu.) Normalde kullandığımız genel yapılandırmada olan bütün isteklere eklediğimiz ve oldukça memnun olduğumuz CORS […]

NGINX’de XenForo Yapılandırma

Özellikle forum sahibi bir kaç arkadaşımız geçtiğimiz günlerde bana ulaşarak abi NGINX’de XenForo nasıl yapılandırabiliriz diye sordu kendilerine anlattım. URL rotalarında sorun yaşayan herkesin derdine derman olacak şekilde gerekli olan yapılandırma dosyasını aşağıya bırakıyorum. XenForo 1 ve 2 sürümü ile uyumludur. SEO uyumlu rotalar için oluşturulmuştur. libraries ve internal_data gibi belli başlı yerlere dışarıdan erişim […]

NGINX İçin ngx_pagespeed Kuralları

NGINX üzerinde kimi zaman googlenin kuluçka merkezinde geliştirilen ngx_pagespeed kullanmak isterseniz, uygulamayı derledikten ve kurulumu tamamladıktan sonra aşağıdaki kural setini uygulamanız siz hem en iyi performansı verecek hemde web sitenizde pagespeed kaynaklı sorunları yaşamayacaksınız. /etc/nginx/conf.d/ içerisine aşağıdaki yapılandırmaları pagespeed.conf olarak eklemeniz yeterlidir.

NGINX Güvenlik Yapılandırması Nasıl Yapılır?

NGINX üzerinde yapılandırmanızı yaptığınızda ek güvenlik önlemleri almanız oldukça faydalı özellikle Wordpress, Joomla vb sitelerde uygulayabilirsiniz. Uygulama sunucusu kuracak arkadaşlarımız içinde bu yapılandırma dosyamız oldukça idealdir. .git, .DS_Store vb gibi başında nokta olup gizli kalması gereken dosyaları ve yürütülebilir dosyaların erişime engellenmesi, sürüm bilgisi veya sunucu üzerinde koşan uygulamanın bilgilerinin bulunduğu dosyaların erişimlerinin engellenmesi, uzantıya […]

NGINX’de Access Log ve Error Log Nasıl Kapatılır?

Bugün sizlere NGINX üzerinde access logların ve error logların nasıl kapatılabileceğini göstereceğim, disk alanınızda yer kalmadıysa veya log tutmak istemiyorsanız bu işlemi gerçekleştirebilirsiniz. Bazı zamanlarda müşterilerimiz disk I/O çok kullandığı gerekçesiyle kapattırmak istiyor, bu gibi durumlar içinde kullanılabilir ancak önermiyorum. Aşağıda yer alanları her bir vhost dosyanıza tek tek uygulayınız, ayrıca isterseniz http { } […]

NGINX’de Wordpress REST API Rota Ayarları

Wordpress REST API kullanımı konusunda gördüğüm kadarıyla insanlar bu özelliği pek kullanmıyor, özellikle NGINX üzerinde sanırım hiç kullanan olmadığı için ilk hatayı Türkiye’de ben almış olabilirim diye düşündüm.(olur mu olur) Önce bu rotayı nasıl yazabilirim diye wordpress’in resmi geliştirici belgelerini karıştırmaya başladım. Karşıma direk olarak Rotalar ve Sonlandırma belgesi çıktı. Belgelendirmede bahsedileni aynen buraya ekliyorum. […]

NGINX’de HTTP Güvenlik Headerları Nasıl Ayarlanır?

İnternette yer alan HTTP güvenlik başlıklarını kontrol eden ve puanlayan ne kadar site varsa, hepsinde A+ not almanıza imkan sağlayacak yapılandırmayı aşağıya bırakıyorum. Güvenliğiniz için olmazsa olmazlarımız. Verdiklerimin herhangi bir tanesini veya birkaçını direk olarak kullandığınız /etc/nginx/nginx.conf dosyası içerisine tanımlamanız yeterli olacak. Ardından web sunucusunu nginx -s reload ile yeniden başlattığınızda değişikliği görebilirsiniz.

W3 Total Cache NGINX Yapılandırması

Bildiğiniz gibi bugün CloudFlare kullanımını bıraktım ve direk olarak web sunucusu üzerinden hizmet vermeye başladık, bu noktada fark ettiğim isteklerde headerların her isteğe eklenmiyor olmasıydı, yani tarayıcı dışında hiç bir istekde güvenlik başlıkları eklenmiyordu. Bu bir sorun mu? son kullanıcı için aslında değil, otomatize sistemler ile istek yapıldığında istismar edilebilecek bir durum, düzeltmek amacıyla doğru […]

NGINX’e Mod_Security Kurulumu

Sizlere Layer 7 tarafında web sunucusu üzerinde bir nebze çözüm sunabilecek bir eklenti olan mod_security nasıl kurulacağını ve yapılandırılacağını anlatacağım. Bu makale’de yapacağınız işlemler sayesinde botların otomatik olarak gerçekleştirdiği taramaları engelleyebilir, saldırı yüzeyinizi daraltabilirsiniz. Bu eklenti %100 güvenlik sağlamamakla birlikte bilinen atakların %70 kadarını engeller. L7’de tam güvenlik sağlamak istiyorsanız, kendi güvenlik kurallarınızı geliştirmeniz gerekir. […]

Wordpress 5.5 Sitemap NGINX Rewrite Kuralları

Henüz düzenlenmiş bir kural seti göremediğimden Beta sürecinde kullanmak isteyenler olabilir diye bir güzellik yaparak NGINX üzerinde sorun çıkartmaması için rewrite kurallarını yazdım. BETA sürecinde kullanabileceğiniz kurallar Betadan çıkışta kullanabileceğiniz kurallar Duruma göre ağustosda yeni sürüm çıktığında değişikliği yapacağım. Şuanda beta sürecinde kullanacak arkadaşlar bu kural setlerini kullanabilirler.

NGINX İçin WebP Desteği Ekleme

Herkesin kullanmak için can attığı WebP teknolojisini NGINX üzerinden nasıl servis edeceğimizi göstereceğim. Böylelikle görselleriniz daha düşük boyutta daha kaliteli gözükecek. Öncelikli olarak webp uygulamasını sisteme kuralım Sistemimize gereken kurulumlar yapıldı, şimdi sıra bunu NGINX uygulamamıza eklemeye geldi. Bunun için aşağıdaki yapılandırmaları nginx.conf dosyanıza ekleyin. Eklediğiniz satırlar tarayıcıda webp desteği olup olmadığını kontrol edecek Bu […]

NGINX Web Sunucusu Üzerinde Matomo Yapılandırma

Daha önceden piwik olarak adlandırılan ve ücretsiz bir şekilde geliştirilip dağıtımı yapılan analitik uygulaması, ansızın isim değiştirerek matomo oldu, bu uygulamanın eski nginx yapılandırmalarından bazıları düzgün çalışmıyor. Bu noktada aşağıdakini kullanabilirsiniz.

Wp Fastest Cache Eklentisi İçin Nginx Ayarları

Normalde eklenti Nginx için benim gördüğüm kadarıyla herhangi bir config sağlamıyor. Eklenti normal şartlar altında Nginx ile sorunsuz bir şekilde çalışıyor. Ama ne olur ne olmaz ben yapılandırmayı sisteme eklerim diyenler için yapılandırma aşağıda Github Gist üzerinden erişmek isteyenler bu linki kullanabilirler.

nginx.pid (13: Permission denied) Hatasının Çözümü

Nginx üzerinde hiçbir değişiklik gerçekleştirmeden rutin kontrollerim sırasında günlüklerde aşağıdaki satırları gördüm. Google üzerinde elle tutulur herhangi düzgün sonuca ulaşamadığım için direk olarak geliştiricilere ve topluluğa mail attım cevabın gelmesi biraz sürecek lakin ben genede kendi bulduğum ilginç çözümü paylaşmak istiyorum. Uzunca bir aramadan ve doküman kurcalamadan sonra somut bir sonuca ulaşamadığımdan bahsetmiştim. Bu yüzden […]

NGINX ile HTTP/2 Server Push Özelliğini Tanıyalım

HTTP/2 açıklamalarında tanımlanan server push (sunucu iteleme), bir sunucunun istemcinin yakında bu kaynakları isteyebileceğini öngörerek kaynakları uzaktan bir istemciye önceden bildirmesine izin verir. Bunu yaparak, bir sayfanın yüklemesinde bir RTT veya birden fazla RTT sayısını (gidiş dönüş zamanı- bir istek ve yanıt için gereken süre) azaltabilirsiniz, böylece kullanıcıya daha hızlı yanıt verebilirsiniz. Buda direk olarak […]

Certbot Nginx Eklentisinin Kurulumu

Let’s Encrypt günümüzde oldukça popüler olan bir ücretsiz SSL çözümü olarak karşımıza çıkıyor. SSL sertifikasına para vermektense ücretsiz kullanmak oldukça güzel bir özellik. Tabi kurulum sırasında arada hatalardan da geçemiyoruz. En son benim başıma şu şekilde bir hata mı desem yoksa eksiklik mi desem bilemeyeceğim bir durum geldi Hani eskiden kullanırken nginx üzerinde birden böyle […]

Nginx’de Root ve Alias Farkı, Hangisini Kullanmalıyız ?

Uygulama sunucunuz da statik dosyalarınızı barındıracaksınız ve tüm linkleri 404 veriyorsa veya ayrı bir alan belirleyip sadece oraya yönlendirme yapmak istiyorsanız doğru yere geldiniz. Burada ama asıl anlatacağımız nginx de tanımlama yaparken kullanılan root ve alias parametrelerinin ne işe yaradığı ve nasıl kullanılması gerektiğinden bahsedeyim sizlere bu tanımlamalar yapılırken pek çok yanlışlık yapıldığı için genelde […]

Nginx İçin Self-Signed SSL Sertifikası Oluşturma

Nginx için SSL sertifikasını ayarlamak oldukça basittir hele ki bu işlem self-signed ise ve özellikle cloudflare gibi bir aracı kullanılacak ise daha iyi olacaktır. Direk olarak cloudflare Mitm olayından etkilenmemiş olursunuz ama gene etkilenirsiniz. Ben bahsettiğim gibi Cloudflare’yi araya alacaksam böyle bir yöntemi kullanıyorum. Diğer türlü araya Cloudflare girmeyecek ise o zaman yapacaklarımız tabi ki […]

Nginx İçin Basit Kimlik Doğrulama Modülü

Web sitenizde gelen ziyaretçilerin bazı alanlara ulaşmasını istemiyorsanız. Basit ama etkili olan bu yöntemi kullanabilirsiniz. Bize gerekli olan apache için kullanılan htpasswd yi nginx içinde kullanmak İlk önce apache2 de kullanılan utils paketini sisteme dahil edelim kurulumu yaptıktan sonra kullanıcı oluşturmamız gerekiyor bunu isterseniz web sitelerini kullanarak isterseniz de aşağıdaki komut ile oluşturabilirsiniz. Kullanıcı için […]

Nginx için Yoast’s SEO Sitemap Ayarları

Google XML Sitemap üzerinde bulunan hatalar ve uzun süredir güncelleme almamasından dolayı yeni bir Sitemap eklentisi arıyordum Yoast’s SEO kullandığım için Sitemap özelliğini açayım dedim Apache üzerinde pek sıkıntı çıkmasa da Nginx üzerinde çok nadir 404 hatası vermektedir bunun çözümü ise aşağıdaki kodu nginx de site.conf dosyanıza eklemeniz olacaktır. Sadece sitemap özelliğini kullanacaksanız ve herhangi […]

Nginx ve Apache Üzerinde XSS Engelleme

XSS yani normal adıyla “Cross Site Scripting” çok eski bir açık. Ancak günümüzde önlemi alınmadığı taktirde bu açığa oldukça fazla denk gelmemiz mümkün. Yazılan uygulamada önlem alınmamasından kaynaklandığını söylemiştik saldırgan kendi hazırladığı kod ile siteniz üzerinde bir takım yönlendirmelerde bulunabilir veya kod çalıştırıp ziyaretçilerinize istediğini gösterebilir. Apache ve Nginx üzerinde ise gelen bu saldırıları bir […]

Tek İP Adresine Birden Çok SSL Kurulumu

Herhangi bir web sitesinde SSL aktif etmek için özel bir ip adresi gerekiyor.Hem sunucu sahipleri hemse hosting firmalar özel ip tahsisi konusunda sıkıntılıdırlar. Bu noktada devreye SNI(Server Name Indication) devreye giriyor. SSL ile şifrelenmiş veri kullanıcının tarayıcısında açılıyor. Aradaki bağlantı tamamen şifreli olduğu için iletişim sırasında header yerine ip adresine bakılması gerekiyor bu yüzdende SSL […]

Nginx Üzerinde HTTP/2 Yapılandırılması

Uzun süredir http/2 biye bize SPDY bir şey yutturmuştu geliştiriciler şimdi ise bunu bir kenara bırakıp ciddi ciddi http/2 ye geçmeye başladık nginx kullanan web site sahipleri hemen güncellemelerini ve ayarlamalarını yaptı lakin bizim ülkemizde bunu hemen görmenin imkanı pek yok gibi duruyor. Öncelikle 22 Eylül tarihinde duyurulan bir güncelleme ile Nginx 1.9.5 sürümü geldi […]

Prestashop için Nginx Ayarları

Prestashop açık kaynak kodlu ve ücretsiz bir E-Ticaret tabanlı içerik yönetim sistemidir.Bu sistem Apache alt yapısında sorunsuz çalışmakta ama iş Nginx gelince ayarlamaları biraz zorlaşıyor lakin Nginx de sistem daha stabil çalışıyor.Yüklü miktarda yapılan isteklerde şişme yapmıyor haliyle de performansı yüksek.İlk olarak sitenizin adı ile bir config dosyası oluşturarak işe başlayabilirsiniz. Dosya : /etc/nginx/sites-available/siteadi.conf İçerisine […]

Nginx SSL Yönlendirme

SSL Aktif ettiğim zaman apache kullanıyordum.Sonradan baktım apacheden bir yol olmayacak geçtim nginx e bu seferde http yönlendirmesinin kolay olmadığını söylediler dedim nasıl kolay olmaz hemen yaptım ayarlamaları yönlendirdim http trafiğini https e böylelikle güvenlik üst seviyelere yükselmiş oldu kullanıcılar http girseler bile otomatik olarak https trafiğine yönlenecekler bu yüzden içimiz rahat Dosya : /etc/nginx/nginx.conf […]

Nginx’de Cors Ayarları Nasıl Yapılır

Cors belkide internet ortamında en fazla aradığım şeylerden bir tanesi olabilir.Yaklaşık 2 hafta aramışımdır en iyi ayarı bulana kadar deneme yanılma derken çalışan versiyonu sonunda karşınıza çıkartıyorum. CDN kullanmaya başladığınızda Cors eğer aktif değilse web fontlar gözükmez yada uzaktan çekilen resimler hata verir işte CORS bunun önüne geçiyor ve hepsine izin veriyor Apache sistemlerde oldukça […]

Nginx’de Spam Referrer Trafiği Yasaklama

Nginx Web Server kullanmaya başladığınız zaman yasaklamış olduğunuz tüm Spam trafikler bir anda tekrar sitenize gelmedi başladı değil mi ? gerçekten de böyle sıkıcı bir durum hakim Nginx de Allahtan bunu kolaylıkla yasaklayabiliyoruz. Üstelik öyle fazlasıyla uğraştırmıyor ancak etki etmesi biraz zaman alacak yaklaşık 24 saat kadar.Tabi bu işlemleri yaptıktan sonra Nginx yeniden başlatmayı unutmayınız. […]

Nginx Statik Dosyalar’da Browser Cache İşlemi

Sitenizi Nginx alt yapısına taşıdıysanız apacheden kalma browser cache özelliklerinin hiç birini kullanamazsınız ancak nginx bunu yapmak için size bir kolaylık sunar aslında hemen sitenizin ayar dosyasına ulaşın genelde yolu /etc/nginx/sites-aveilable gibi bir şey, buradan komutlar ile dosyayı açın ve server blockları içerisine aşağıdaki komutları yapıştırıp kayıt edin Sonrasında Nginx servisini yeniden başlattığınızda artık statik […]