Backend
Bir backend
bölümü, yük dengelemek ve istekleri işlemek için atanacak bir grup sunucu tanımlar. Her arka uca web_servers
gibi özel bir etiket eklenir. Genel olarak oldukça basittir ve burada birçok ayara ihtiyaç duymazsınız.
balance
Hiçbir kalıcılık yöntemi bu seçimi geçersiz kılmazsa, isteğe yanıt vermek için HAProxy'nin sunucuyu nasıl seçeceğini denetler. Kalıcılık yöntemi, belirli bir istemciyi her zaman bir çereze dayalı olarak aynı sunucuya göndermek olabilir. Genel yük dengeleme değerleri, bir sonraki sunucuyu seçip tekrar listenin en üstünde başlayan roundrobin
ve leastconn
içerir; burada HAProxy, sunucuyu en az aktif oturumla seçer.
cookie
Çerez tabanlı kalıcılığı etkinleştirir. HAProxy'ye istemciye SERVERUSED (yukarıda belirttiğimiz) adlı bir çerez göndermesini ve bunu ilk yanıtı veren sunucunun adıyla ilişkilendirmesini söyler. Bu, istemcinin oturumu boyunca bu sunucuyla konuşmaya devam etmesini sağlar.
option httpchk
HAProxy'nin backend
sunucularınıza Katman 4 (TCP) denetimleri yerine Katman 7 (HTTP) sistem durumu denetimleri göndermesini sağlar. Yanıt vermeyen sunuculara başka istek sunulmaz. TCP kontrolleri, arka uç sunucusunun IP ve bağlantı noktasına bağlantı kurabiliyorsa başarılı olurken, HTTP sistem durumu denetimleri başarılı bir HTTP yanıtı almayı bekler. Yanıt vermeyen 500 Sunucu Hatası gibi kötü bir HTTP yanıtı almak anlamına gelse de, daha akıllı sağlık denetimleri yanıt vermeyen sunucuların kaldırılmasında etkilidir.
Varsayılan olarak, bir HTTP sistem durumu denetimi, OPTIONS metodu kullanarak '/' adresine istekte bulunur. Ancak, burada belirtilen argümanlar bunu özelleştirebilir. HAProxy, 2xx veya 3xx yanıt kodunu alan tüm kontrolleri başarılı kılacaktır, ancak bu da bir http-kontrol hattı ile özelleştirilebilir. Httpchk seçeneğini kullanmak, http modunu kullanan arka uçlarla sınırlı değildir, bu nedenle HTTP kullanarak iletişim kuran sunucular proxy modundan bağımsız olarak denetlenebilir.
default-server
Varsayılan sunucu ayarı, sağlık denetimlerini etkinleştirme, maksimum bağlantılar vb. gibi ayarları tüm sunucu satırları için ayarlamayı sağlar. Bu, yapılandırmanızın okunmasını ve değiştirilmesini kolaylaştırabilir. Alternatif olarak, bu bağımsız değişkenleri her sunucuda belirleyebilirsiniz.
server
İlk argümanı bir isimdir, arkasından backend
sunucusunun IP adresi ve bağlantı noktası gelir. IP adresi yerine bir alan adı yazabilirsiniz. Bu durumda, başlangıçta çözümlenir veya çözümleyici bağımsız değişkeni eklerseniz, çalışma zamanı sırasında güncelleştirilir. DNS girişi bir SRV kaydı içeriyorsa, bağlantı noktası ve ağırlık da ondan doldurulur. Bağlantı noktası belirtilmezse, HAProxy istemcinin bağlandığı bağlantı noktasını kullanır; bu, etkin mod FTP gibi rasgele kullanılan bağlantı noktaları için yararlıdır.
Her ne kadar sunucularımızın HTTP tabanlı sağlık kontrolünü ayarlamak için httpchk seçeneğini eklesek de, her sunucunun bir kontrol argümanı ekleyerek sağlık kontrollerini etkinleştirmesi gerekir. Bu, sunucu satırında veya bu örnekte yaptığımız gibi varsayılan sunucu satırında ayarlanabilir.
Her sunucu satırında, sunucunun verileceği maksimum eşzamanlı istek sayısını sınırlayan bir maxconn ayarı olmalıdır. Sadece bir tahmin olsa bile, burada bir değere sahip olmak, sunucularınızı isteklerle boğmayı engeller.
Last updated