Makale Rehberi
Tek bir sunucuda birden fazla uygulama çalıştırmak istiyorum.WordPressWeb sitenizde Redis nesne önbelleklemesi etkinleştirilmişken önbelleğe alınmış verilerin üzerine yazılması ve ön uç hataları konusunda endişeleniyor musunuz? Bu eğitim, aynı sunucudaki birden fazla WordPress sitesinde Redis'i yapılandırmak için nihai kılavuzu sunmaktadır!
Bu eğitim, wp-config.php dosyasını değiştirerek farklı Redis veritabanları (0-15) tahsis etmenin ve Cache Key Salt önek izolasyonunun iki yöntemini öğretir. Bu yöntemler veri gizleme sorununu mükemmel bir şekilde çözer ve yüksek eşzamanlılık gerektiren sunucuların performansını önemli ölçüde artırır. Web yöneticileri için olmazsa olmaz!
Birkaç gün önce, bağımsız bir web sitesi işleten bir arkadaşım, iki WordPress sitesinin son zamanlarda garip davrandığından şikayet etti. A sitesindeki gönderi başlıkları sürekli olarak B sitesine yönlendiriliyordu ve B sitesinden önbelleğe alınmış resimler açıklanamaz bir şekilde A sitesinin yorum bölümünde görünüyordu. Hemen güldüm; bu sadece Redis'in izolasyon için yapılandırılmamış olmasından kaynaklanıyor.
Şöyle düşünün: Birçok kişi, para tasarrufu amacıyla, birden fazla WordPress web sitesini aynı sunucuya sıkıştırıp hepsinde Redis önbellekleme kullanıyor. Sonuç? Tüm web siteleri varsayılan olarak Redis Veritabanı 0'a bağlanıyor ve bu da veri karmaşasına yol açıyor. Eğer A web sitesinin önbellek anahtarı B web sitesinin önbellek anahtarıyla aynıysa, bu felaket için bir reçetedir.
Dürüst olmak gerekirse, ben de bu tuzağa düştüm. Dahili bir bilgi tabanı oluştururken, iki test ortamı tek bir Redis örneğini paylaşıyordu ve bu da önbelleklerin birbirinin üzerine yazılmasına neden oluyordu. Sorunu çözmem çok uzun sürdü. Bu nedenle, bu alanda paylaşabileceğim bazı ön deneyimlerim var.
Bu sorunu çözmenin temel fikri izolasyondur. Her web sitesinin verileri, birbirine müdahale etmeden kendi ayrı alanında kalır. Bu izolasyonu nasıl sağlarız? İki ana yaklaşım vardır.

Seçenek 1: Farklı web sitelerine farklı Redis veritabanları atayın.
İlk yaklaşım, ki bu benim de en çok tavsiye ettiğim yöntemdir, her web sitesine ayrı bir Redis veritabanı atamaktır. Redis'in varsayılan olarak 0'dan 15'e kadar numaralandırılmış 16 veritabanı vardır. Web sitesi A'nın Veritabanı 0'ı, web sitesi B'nin Veritabanı 1'i vb. kullanmasını sağlayabilirsiniz. Bu, her web sitesine ayrı bir sabit disk bölümü vermek gibidir; bu da fiziksel veri izolasyonunu ve en temiz veri depolamasını sağlar.
İzlenecek adımlar şu şekildedir: Öncelikle, her WordPress web sitesinin yönetim panelinde "Redis Object Cache" adlı bir eklenti kurun. Geliştiricisi Till Krüss'tür ve bu eklenti en istikrarlı ve güvenilir olanıdır. Henüz önbelleğe almayı etkinleştirmeyin. Ardından, FTP veya SSH üzerinden sunucuya bağlanın, her web sitesinin kök dizininde bulunan wp-config.php dosyasını bulun ve "/* That's all, stop editing! Happy publishing. */" satırının üstüne birkaç satır yapılandırma ekleyin.
Örneğin, A web sitesinin yapılandırması:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 0 ); // 用数据库0
define( 'WP_CACHE_KEY_SALT', 'site_a_' ); // 加个独立前缀,双重保险B web sitesi için, veritabanı numarasını ve öneki değiştirmeniz yeterlidir:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 1 ); // 用数据库1
define( 'WP_CACHE_KEY_SALT', 'site_b_' ); // 前缀也要改Bu arada, Redis örneğinizin bir şifresi varsa, bunu her web sitesinin yapılandırmasına da eklemeniz gerekiyor:
define( 'WP_REDIS_PASSWORD', '你的Redis密码' );Yapılandırma dosyalarını değiştirdikten sonra, her bir web sitesine geri dönün.WordPress arka ucu"Ayarlar" -> "Redis" bölümüne gidin ve "Nesne Önbelleğini Etkinleştir" seçeneğine tıklayın. Her şey yolunda giderse, durum "Bağlandı" olarak görünecektir. Bu noktada, iki web sitesinden gelen veriler birbirinden ayrılmış olur.
Seçenek 2: Farklı Redis Anahtar önekleri (Salt) kullanın.
Ancak, sizi önceden uyarmam gereken bir tuzak var. 16'dan fazla web siteniz varsa veya yalnızca tek bir veritabanı sağlayan bir bulut Redis hizmeti kullanıyorsanız, ilk yaklaşım işe yaramayacaktır. Bu durumda, ikinci yaklaşımı kullanmanız gerekecektir: farklı Redis Anahtar önekleri (Salt) kullanmak.
Bu yaklaşım, tüm web sitelerinin aynı Redis veritabanını paylaşmasına olanak tanır, ancak verileri benzersiz bir önek kullanarak birbirinden ayırır. Daha basit bir ifadeyle, herkesin aynı binada yaşadığı, ancak her dairenin benzersiz bir adrese sahip olduğu ve böylece kuryelerin hata yapmasını önlediği bir durumdur.
Yapılandırma yöntemi de benzerdir ve wp-config.php dosyasına yapılandırma eklemeyi içerir, ancak önemli olan WP_CACHE_KEY_SALT'ın benzersiz olması gerekirken, WP_REDIS_DATABASE aynı olabilir (veya boş bırakılabilir, varsayılan değer 0'dır).
A web sitesinin yapılandırması:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_CACHE_KEY_SALT', 'www_siteA_com_' ); // 确保唯一B web sitesinin yapılandırması:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_CACHE_KEY_SALT', 'www_siteB_com_' ); // 确保唯一Yapılandırmanın ardından, eklenti yönetim panelinde önbellekleme özelliğini etkinleştirmeniz yeterlidir.
Redis Yapılandırmasında Sık Karşılaşılan Sorunlar ve Çözümler
Ancak, ikinci seçeneğin esnek olmasına rağmen potansiyel bir risk taşıdığını açıkça belirtmeliyim. Eklentiniz önbelleği temizlerken Veritabanı 0'ın tamamını temizlerse, diğer web sitelerindeki veriler yanlışlıkla etkilenebilir. Bu nedenle, 16 veya daha az web siteniz varsa, daha fazla güvenlik için ilk seçeneği kullanmanızı şiddetle tavsiye ederim.
Yapılandırma işlemi sırasında bazı sorunlarla karşılaşabilirsiniz. Örneğin, yapılandırma değişiklikleri yaptıktan sonra web sitesi hatalar gösterebilir veya boş bir ekran görüntüleyebilir. Bu gibi durumlarda, öncelikle wp-config.php dosyasındaki kod sözdizimini kontrol ederek virgül veya noktalı virgül eksikliği olup olmadığını inceleyin. Ayrıca, sunucuda PHP Redis uzantısının (php-redis) kurulu olduğundan emin olun; kurulu değilse, önce kurun.
Sıkça sorulan bir diğer soru ise: Belirli bir web sitesinin önbelleğini nasıl temizlerim? Her web sitesinin WordPress yönetim panelinde "Önbelleği Temizle" seçeneğine tıklamanız yeterlidir. İlk yöntemi (farklı veritabanları) kullanıyorsanız, yalnızca mevcut web sitesine karşılık gelen veritabanı temizlenir ve diğer web sitelerini etkilemez. İkinci yöntemi (aynı veritabanı, farklı ön ekler) kullanıyorsanız, bazı eklentiler temizleme işlemi sırasında tüm Veritabanı 0'ı temizleyebilir, bu nedenle birden fazla site için ilk yöntem önerilir.
Redis'i yapılandırmak aslında birden fazla telefonu şarj etmeye benziyor. Her telefon için ayrı bir şarj cihazı kullanabilirsiniz (Seçenek 1) veya her kablo için bağımsız anahtarlı bir çoklu priz kullanabilirsiniz (Seçenek 2). Temel prensip, şarj güvenliğini sağlamak ve kısa devreleri önlemektir.
Birden fazla site kurmaya ilk başladığımda, Redis'i yapılandırmanın basit olduğunu düşünmüştüm; sadece birkaç parametreyi değiştirmek yeterliydi, değil mi? Ama üretim ortamına geçtiğinde, her türlü önbellekleme sorunu ortaya çıktı. Daha sonra, teknik detayların genellikle "basit görünen" yerlerde gizli olduğunu fark ettim.
Şimdi geriye baktığımızda, yapılandırma sürecinin kendisi karmaşık değildi, ancak temelindeki izolasyon kavramı çok önemliydi. Sistem tasarımında, istikrarı sağlamak için izolasyon çok önemlidir. Tıpkı şehir planlamasında olduğu gibi, yerleşim alanları, sanayi alanları ve ticari alanlar birbirinden ayrılmalıdır, aksi takdirde kaos ortaya çıkar.
Aynı durum teknik yapılandırma için de geçerlidir. Her web sitesinin, diğerleriyle çakışmadan kendi bağımsız alanına sahip olması gerekir. Bu sadece teknik bir konu değil, aynı zamanda bir tasarım ilkesidir.felsefe.
Buraya kadar okuduğunuza göre, eğer faydalı bulduysanız lütfen beğenin ve paylaşın. Güncellemeleri ilk öğrenmek istiyorsanız beni takip edebilirsiniz!
Makalemi okuduğunuz için teşekkür ederim. Bir sonraki yazıda görüşmek üzere.
Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ Burada paylaşılan "Aynı Sunucuda Birden Fazla WordPress Web Sitesi İçin Redis Nasıl Yapılandırılır? Veri Gizlemeyi Önlemek İçin Nihai Kılavuz" başlıklı makale size yardımcı olabilir.
Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-34366.html
