教你快速構(gòu)建一個基于nginx的web集群項目
一 ·項目環(huán)境
centos7/8服務(wù)器8臺、nginx 1.21.1、ab、nfs4、
zabbix、keepalived 2.1.5 、ansible,bind
二· 項目描述
構(gòu)建一個基于nginx的4/7層負(fù)載均衡的web集群項目
模擬企業(yè)的業(yè)務(wù)環(huán)境達到構(gòu)建一個高并發(fā),高可用的web集群。
通過壓力測試來檢驗整個集群的性能,找出瓶頸,不斷的去優(yōu)化。
三· 項目步驟
1.安裝
安裝部署ansible服務(wù),和其他的服務(wù)器之間建立免密通道,編寫playbook去安裝部署nginx和zabbix
2.配置
通過ansible上去部署nginx和zabbix,配置好nginx長連接,并發(fā)數(shù),和worker的進程數(shù),限制速度以及zabbix的相關(guān)配置等,上傳網(wǎng)站內(nèi)容(搭建一個WordPress的博客系統(tǒng)或者flask接口網(wǎng)站等)
3.實現(xiàn)負(fù)載均衡
使用2臺服務(wù)器做雙vip的負(fù)載均衡器,使用nginx的4/7層負(fù)載均衡功能實現(xiàn),調(diào)度算法使用加權(quán)輪詢
4.搭建服務(wù)器
搭建nfs服務(wù)器,保障網(wǎng)站的數(shù)據(jù)一致性,并且設(shè)置后端的real-server/backend server開機自動掛載
5.壓力測試
在客戶機上使用ab軟件進行壓力測試
6.監(jiān)控
在zabbix/prometheus監(jiān)控平臺上添加相關(guān)的服務(wù)器和監(jiān)控項,監(jiān)控整個web集群的性能 --》zabbix
7.高可用
使用keepalived軟件給負(fù)載均衡器做高可用,防止單點故障 --》keepalived
8.域名解析
搭建一個dns服務(wù)器,給整個web集群進行域名解析,通過dns域名解析負(fù)載均衡將2個vip綁定到一個域名給用戶訪問使用,從而將流量導(dǎo)入到不同的負(fù)載均衡器上
9.提升性能
嘗試去優(yōu)化整個web集群,提升性能:內(nèi)核參數(shù),nginx參數(shù)的優(yōu)化,考慮加緩存等措施
10.使用ansible編寫playbook
嘗試全部使用ansible編寫playbook安裝所有的軟件: nginx,zabbix,keepalived,ab,nfs等
四· 項目總結(jié)
1.慢慢理解了集群的概念,從1臺到多臺
2.對高性能和高可用有了一定的認(rèn)識,對系統(tǒng)的性能指標(biāo)參數(shù)有了一定的認(rèn)識,對腦裂現(xiàn)象有了一定的了解和如何避免
3.對一鍵部署和安裝有了一定的了解,非常的方便和快捷,今后嘗試更加好的自動化操作 --》ansible
4.對壓力測試下整個集群的瓶頸有了一個整體的概念
5.對系統(tǒng)的優(yōu)化有了一些認(rèn)識,感覺非常的有必要,在不增加成本的情況下提升性能
6.對監(jiān)控也有了一點接觸,監(jiān)控是非?;A(chǔ)的運維工作,可以提前看到問題,做好預(yù)警。
7.對今后學(xué)習(xí)大規(guī)模的集群打下基礎(chǔ),整體規(guī)劃的能力得到提升
8.troubleshooting的能力得到了提升
9.對很多基礎(chǔ)功能的軟件的配合有了一定的了解,例如:zabbix,keepalived,ansible,nginx,nfs,ab,bind等
10.對dns負(fù)載均衡,4/7層負(fù)載均衡有了一定了解
五·搭建WEB注意
1.web網(wǎng)站的內(nèi)容,需要你確定: 博客,接口網(wǎng)站,測試頁面等
數(shù)據(jù)的一致性問題: NFS,san,云存儲,NAS等
2.內(nèi)核參數(shù)的優(yōu)化:
[root@docker ~]# sysctl -p
net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 net.ipv4.conf.all.promote_secondaries = 1 net.ipv4.conf.default.promote_secondaries = 1 net.ipv6.neigh.default.gc_thresh3 = 4096 net.ipv4.neigh.default.gc_thresh3 = 4096 kernel.softlockup_panic = 1 net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 kernel.shmmax = 68719476736 kernel.printk = 5 kernel.sysrq = 1 kernel.numa_balancing = 0 [root@docker ~]# ulimit unlimited [root@docker ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 14826 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 100001 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 14826 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@docker ~]# ab -c 2000 -n 100000 http://192.168.0.92/
到此這篇關(guān)于構(gòu)建一個基于nginx的web集群項目的文章就介紹到這了,更多相關(guān)nginx web集群項目內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信