Wordpress sitesi AWS yük dengeleyicinin arkasına nasıl yerleştirilir
HTTPS ve WAF kullanabilmek için bir yük dengeleyicinin arkasına koymaya çalıştığım bir AWS EC2 linux sunucusunda barındırılan eski bir wordpress sitemiz var. Biraz deneyimli bir sistem yöneticisiyim ama wordpress'te çok yeniyim. İçeriği HTTPS üzerinden yüklerken aynı zamanda yük dengeleyici ile sunucu arasında bir yönlendirme döngüsüne girememekte sorun yaşıyorum.
80 numaralı bağlantı noktasında sunucuyla konuşmak için yük dengeleyici kurulumuna sahibim ve WP_SITEURL / WP_HOME http: // olarak ayarlandıysa, Chrome geliştirici konsolunda bir dizi karışık içerik hatası alıyorum çünkü komut dosyalarını ve css yüklemeye çalışıyor http. WP_SITEURL / WP_HOME'u https: // olarak değiştirirsem, bir yönlendirme döngüsü oluşturur çünkü wordpress, 80 numaralı bağlantı noktasında iletişim kurmaya çalışan yük dengeleyiciyi https'ye yönlendirmeye devam eder.
Kaynaklar, komut dosyaları vb. İçin temel URL'ye sahipken, yük dengeleyicinin 80 numaralı bağlantı noktasında sunucuya erişmesine izin vermenin bir yolu var mı?
Yanıtlar
WordPress, https proxy'sinin (yük dengeleyiciniz) arkasında olduğunda, https'nin etkin olduğunu bilmez. Proxy, https (443 bağlantı noktası) üzerinden çalışıyor ancak proxy ile WordPress arasındaki iletişim http (80 bağlantı noktası) üzerinden gerçekleşiyor. WordPress trafiği http üzerinden olduğu için, bu nedenle https'den http'ye (WordPress ile) ve yine http'den https'ye (proxy ile) yönlendirme döngüsü elde edersiniz. WordPress'i https üzerinde çalışmaya başlamaya zorlamanız gerekir.
Bu satırı wp-config.php
$_SERVER['HTTPS'] = 'on';
Bazen proxy'ler HTTP_X_FORWARDED_PROTO
, orijinal trafiğin https'de olduğunu bildirmek için WordPress'e ek başlık gönderir . Biraz daha esnek olmak için kullanabilirsiniz
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on';
}
Https'yi değiştirin WP_SITEURL
ve WP_HOME
kullanın. Ve veritabanındaki tüm bağlantıları https ile değiştirin.
Referans: https://developer.wordpress.org/reference/functions/is_ssl/