日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HAproxy + Keepalive实现LDAP代理服务

發布時間:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HAproxy + Keepalive实现LDAP代理服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HAproxy + Keepalive實現LDAP代理服務


因為公司的各種高自研發的系統非常多,這些系統又全部是在使用LDAP做認證,目前我們有幾臺DC控制器來分擔這些ldap請求,用戶通過訪問ldap.xxxx.com這個域名來連接ldap服務器,我們通過DNS輪詢的方式指向不同的DC服務器。


這樣出現一個問題就是:當某一臺DC掛掉的時候,會導致部分用戶或者系統的認證失敗,為了達到高可用性,我們更改了環境拓撲,用四臺linux服務器充當代理服務器,代理所有ldap請求。


結構如下圖:

簡單解釋一下,4臺代理服務器兩兩一組,都是一臺主機,一臺熱備,分配兩個VIP,用戶通過DNS查詢ldap這個a記錄會被輪詢到這兩個虛IP的代理服務器上,代理服務器后端通過HAproxy檢測DC主機端口狀態,平均分配用戶請求到這些主機上,如果用DC主機故障,就不分配請求。兩臺一組的代理服務器通過keepalived檢測健康狀態,如果一臺故障,自動將vip飄到備份主機上。

我不得不說,因為我在接到這個任務之前,完全是個linux小白,我連linux怎么做系統都不會。。所以如果我的這篇文章有寫的不對的地方,請多多指出。


好吧,雖然我不會裝linux系統,但是公司技術部的大大和安全組的大大們研發了一套linux的pxe自助系統,我只需要PXE啟動后,選擇我要裝linux RHEL 6.3版本即可,所以我這里沒法介紹怎么做系統。

同樣,IP和主機名的修改我也不講了,這個還是挺容易查到的。


現在開始進行系統的配置:


1 安裝keepalived和HAProxy需要的組件


好吧,我可以用yum命令。。又省事了

yum install gcc kernel-headers kernel-devel yum install keepalived

2 配置keepalived:

Keepalived配置文件的默認位置為:

vi /etc/keepalived/keepalived.conf

建議復制一份原始的做備份

修改配置文件為:


vrrp_scriptchk_http_port { script"/etc/keepalived/check_haproxy.sh" #檢測haproxy健康狀態的腳本 interval 2 weight 2 } vrrp_instanceVI_1 { interface eth0 state MASTER #備機配置為BACKUP priority 101 #備機配置為100 virtual_router_id 51 #keepalived組表示,同一組中的主機該值要一樣 smtp_alert virtual_ipaddress { x.x.x.2 #虛擬IP } track_script { chk_http_port } }

創建上面用到的腳本文件,意思是當檢測到haproxy服務沒有啟動時啟動它,如果啟動失敗則停掉本機的keepalived服務,這樣VIP會切換到備機上:


#vi /etc/keepalived/check_haproxy.sh #!/bin/bash A=`ps -C haproxy --no-header |wc -l` if [ $A -eq 0 ];then /root/haproxy-1.4.23/haproxy -f /root/haproxy-1.4.23/haproxy.cfg sleep 3 if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then /etc/init.d/keepalived stop fi fi #chmod 755 /etc/keepalived/check_haproxy.sh


3 安裝HAProxy

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.23.tar.gz tar–zvxf haproxy-1.4.23.tar.gz cd haproxy-1.4.23 make TARGET=linux26

4 配置HAProxy


創建配置文件:

vi /root/haproxy-1.4.23/haproxy.cfg

配置文件如下

globallog /dev/log local0 info #日志log /dev/log local0 notice #日志maxconn 4096user rootgroup rootdaemon defaultslog globalcontimeout 5000clitimeout 50000srvtimeout 50000option forwardforoption redispatchstats refresh 30retries 3 frontend ldap_tcpbind *:389default_backend pool_ldaplog globaloption forwardfor backend pool_ldapbalance roundrobinmode tcpserver DC03 10.1.1.3:389 check inter 5000 #監聽的LDAP服務器server DC04 10.1.1.4:389 check inter 5000server DC05 10.1.1.5:389 check inter 5000server DC06 10.1.1.6:389 check inter 5000 frontend vs_stats :8081 #監控頁面端口mode httpdefault_backend stats_backend backend stats_backendmode httpstats enablestats uri /stats #監控頁面URLstats auth admin:admin #監控頁面管理員賬號和密碼


主機和備機配置一樣。


配置HAProxy日志:

vi /etc/rsyslog.conf

修改syslog內容,添加一行:

local0.* /var/log/haproxy.log

重啟rsyslog服務

service rsyslog restart

可以在/var/log下看到haproxy.log了


5 啟用服務

全部配置完畢后,使用下面命令啟動服務:

service keepalived start

keepalived會自動把haproxy啟動

chkconfig keepalived on

讓keepalived開機自啟動。


6 啟用LDAPS代理

如果同時還要添加636的SSL ldap認證,還需要為DC安裝證書

因為我們有多個DC服務器,所以需呀一張類似Exchange的SAN證書,即多域名證書。可以通過Exchange服務器上的證書申請功能申請,也可以直接像CA申請,這里講解直接像CA申請,因為比較復雜:


登錄CA服務器,打開PowerShell,輸入:

certutil-setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc
net start certsvc

該命令允許CA接受SAN證書的申請。


在申請證書網站的界面的Attribute屬性中,輸入:

san:dns=dc03.xxx.com&dns=ldap.xxx.com.com&dns=dc04.xxx.com&dns=dc05.xxx.com&dns=dc06.xxx.com

提交證書申請后,就會得到一張多域名證書。將其安裝在各DC上。


在HAProxy腳本加入下面內容:

frontendldap_ssl bind *:636 default_backend pool_ssl backendpool_ssl balance roundrobin mode tcp server DC03 10.1.1.3:636 check inter 5000#LDAP服務器 server DC04 10.1.1.4:636 check inter 5000 server DC05 10.1.1.5:636 check inter 5000 server DC06 10.1.1.6:636 check inter 5000


重啟服務后,整個代理環境就算配置完成了。

轉載于:https://blog.51cto.com/mingwang/1353615

總結

以上是生活随笔為你收集整理的HAproxy + Keepalive实现LDAP代理服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。