CPalius 2.2.68 yayında. Bu sürümde üç şeye odaklandık: ana sayfayı baştan yazdık, sayfa önbelleğindeki gizli bir hatayı bulup düzelttik ve hız ile güvenliği, sayılara bakarak ve rakip sistemlerin kaynak kodunu okuyarak ele aldık.
Ana sayfa artık senin
Portal bloklarının her metni, bağlantısı ve öğesi düzenlenebilir. Eskiden kahraman bölümündeki bir bağlantı koda gömülüydü; artık yok. Editörde önizleme masaüstü ve mobil olarak ayrı gösteriliyor ve "ana sayfada ne gösterilsin?" bölümünde her seçeneğin ekran görüntüsü var, yani karar verirken tahmin etmiyorsun.
İstersen kendi tek sayfalık HTML/CSS/JS'ini yazabilirsin. Yazdığın betik siteden, çerezlerden ve ağdan yalıtılmış bir korumalı alanda çalışıyor. Yönetici bile olsan bu sınır aşılamıyor.
Yeni bir site erişim modu da var:
Site açık değilse robots.txt arama motorlarını da dışarıda bırakıyor. Görünüm menüsü de toparlandı: Ana sayfa, Temalar, Mağaza, Genel görünüm, Fontlar, Tema editörü ve Studio görünümü tek sıralı şeritte.
Önbellek çalışıyor göründü ama çalışmıyordu
Panelde "önbellek temizlendi (0 dosya)" yazıyordu ve kaynağı görüntüle dediğimizde HTML küçültülmemişti. Sebep tahminimizden basitti: forum, misafirlere bir "son ziyaret" çerezi gönderiyordu ve bir CSRF belirteci oturum başlatıyordu. Çerez gönderen sayfa önbelleğe alınmaz. Sonuç olarak neredeyse hiçbir forum sayfası önbelleğe girmiyordu.
Misafirlere artık çerez gitmiyor. Sayfalar saklanıyor, küçültülüyor, sıkıştırılıyor (40,7 KB'lık bir blog sayfası 8,5 KB gidiyor) ve doğrudan web sunucusundan veriliyor. Bir sayfa temizlendiğinde tek bir istek yeniden üretirken diğerleri eski kopyayı görüyor, yani temizleme anında trafik veritabanına yığılmıyor. Hangi sayfanın hangi içeriğe bağlı olduğunu tutan dizini de yeniden yazdık: sayfa başına 515 ms yerine yaklaşık 3 ms.
Ölçerek hızlandırdık
"20 bin eşzamanlı ziyaretçi ve 100 bin kullanıcıda ne olur?" sorusunu tahminle değil ölçümle yanıtlamak için 100 bin kullanıcı, 20 bin konu, 200 bin mesaj ve 100 bin rezervasyonlu bir test veritabanı kurduk (cp:perf:seed, adında "perf" geçmeyen veritabanını reddeder). Sonuçlar:
| Ne | Önce | Sonra |
|---|---|---|
| Forum ana sayfa | 209 ms | 60 ms |
| Konu listeleri | 37 ms | 0,13 ms |
| Bir bölümün konu listesi | 29 ms | 0,05 ms |
| Salon çakışma kontrolü | 44 ms | 0,03 ms |
Çoğu kazanç doğru indeks ve gereksiz sorguyu kaldırmaktan geldi. Ölçümü sürdürülebilir kılmak için araçlar da ekledik: cp:perf:probe sayfa başına süre ve sorgu sayısını gösteriyor, panelde "Sayfa maliyetleri" ekranı canlı trafikten ölçüm topluyor, cp:doctor sunucu ayarlarını (OPcache, sıkıştırma, MySQL tamponu) denetliyor.
Rezervasyonlarda bir güvenlik düzeltmesi de var: kilit alınamazsa işlem artık kilitsiz çalışmıyor, reddediliyor. Eskiden bu durumda çift rezervasyon mümkündü.
Rakiplerin kaynak koduna baktık
Drupal, TYPO3, MODX, ProcessWire ve Sulu'nun güvenlik katmanlarını okuduk ve bizde olmayanları ekledik:
Güncellemeden önce
Sürüm iki küçük veritabanı göçü içeriyor (indeksler). Panelden güncellerken otomatik uygulanıyor. Güvenlik tarafında bir şeyi bilmen gerekiyor: yönetici oturumların ilk hassas işlemde parolayı yeniden isteyecek. Süreyi security.reauth_minutes ile ayarlayabilir ya da 0 yapıp kapatabilirsin.
Geri bildirimini bekliyoruz. Bir sonraki turda üye sayfalarının çizim süresine ve aramanın tam metin dizinine bakacağız.
Yorumlar (0)
Henüz yorum yok. İlk yorumu sen yaz.
Yorum yaz
Yorumunuz yayınlanmadan önce incelenecektir.