linux企业部分:nginx的并发优化、负载均衡、反向代理、平滑升级、算法扩展

代码 代码 1489 人阅读 | 0 人回复

<
linux企业部门:nginx的并收劣化、背载平衡、反背代办署理、光滑晋级、算法扩大、限流、设置办理、重定背



1、并收劣化

ulimit -a ##open files:1024,用户能够翻开的最年夜文件数目
150551kvrgk8rykrcu8rpk.jpg
sysctl -a | grep file
150551yblxllsxqi1zvb97.jpg
free -m
150551quke10mkzkfjkifn.jpg

2、背载平衡

1. 默许轮询

vim /usr/local/nginx/conf
150552bvxlrtxi87836vb7.jpg
nginx -t ##查抄文件中有无语法毛病
150552idolyyy1yoryy564.jpg
nginx -s reload ##重启效劳
scp -r nginx/ xyf2:/usr/local scp -r nginx/ xyf2:/usr/local 正在sever2战sever3中做以下操纵: ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin ##成立nginx链接到/usr/local/sbin下便于齐局利用nginx指令 vim /usr/local/nginx/conf/nginx.conf,文件的修正以下图:
150552q6zaxvdiiz9w19jg.jpg
echo sever > /usr/local/nginx/html/index.html
编纂剖析文件:
vim /etc/hosts
150553v9o7n0hn3ndhk47l.jpg

正在sever1中施行以下指令:
curl www.westos.org
150553g0vu04p5wwwxvx54.jpg

2.改动权重

vim /usr/local/nginx/conf/nginx.conf
150553ptzxmmavasirlcv2.jpg
权重的默许值是1,改动权重后,权重值年夜的呈现频次相对下,反之则低。
150553shhl3kziylyb9v9h.jpg
此时,权严重的sever2取sever3呈现的频次比,靠近于权重比
3.ip_hash

ip_hash 对后端停止安康检测,当后端呈现标题问题后,会调理到其他后端。当一切后端呈现标题问题时,则会呈现502范例的效劳器报错。
150554pbuuehedufevfb6f.jpg
封闭失落今朝有的两个后端。
150554pmn7ilmbif72otbl.jpg

4.备用机

正在sever1中:
vim /usr/local/nginx/conf/nginx.conf cd /usr/local/nginx/html echo hello world > index.html
150554iy6zkppimky9ph9f.jpg

3、光滑晋级

光滑晋级是为了正在晋级效劳版本时,没有影响效劳的一般利用。效劳正在不停行的状况下,换代晋级。
需求正在sever1主机中,设定可停止的历程数为2,装置一个版本更下的nginx,从头编译、make。
150555c5ussf5cyhscpcez.jpg
nginx -s reload cd ~ lftp 172.25.254.250 get 下于现有nginx的紧缩包 exit tar zxf 下版本nginx紧缩包 cd 下版本nginx解压后的目录中 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio ##编译 make
完成后,对旧版本的nginx停止备份,并拷贝新的nginx。
cd 旧版本的nginx目录中 cd /usr/local/local/sbin cp nginx nginx.old
备份完成后
cd 下版本nginx目录中 cd objs \cp -f nginx /usr/local/nginx/sbin ##拷贝新程序
ps ax | grep nginx ##获得当前版本nginx主历程pid,及master历程。
150555ea0hsiisrc0opap0.jpg
kill -USR2 5438 ##开启新版本
kill -WINCH 7010
kill -WINCH 7011
封闭worker历程
curl -I localhost ##查察版本号。
版本回退,操纵安好滑晋级是一样的。
4、算法扩大

150555e30o33690105xa10.jpg
vim /usr/local/nginx/conf/nginx.con为上图中的模样。
这时候因为sticky语法模块,nginx其实不撑持,nginx.conf文件语法检测毛病。
念要让sticky模块被nginx辨认,要先对nginx停止扩大。
正文失落文件中的sticky,停失落nginx的效劳。
下载sticky模块包:lftp 172.25.254.250
解压完成后。
cd /nginx-1.20.1 make clean ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42 make cd objs \cp -f nginx /usr/local/nginx/sbin/
做完那些操纵后,vim /usr/local/nginx/conf/nginx.conf
解开sticky的正文。
这时候,nginx效劳能够成功开启了。证实sticky模块扩大成功。
5、限流

限制并收毗连数

ab -c10 -n100 http://172.25.37.1/download/vim.jp
150556pgv5llxzbg05gpx4.jpg
vim /usr/local/nginx/conf/nginx.conf
150556fjvgr6mmqimviv5r.jpg

nginx -s reload ##变动设置文件后,重启效劳
150556ns9849im8v4yeu90.jpg
恳求经由过程时,失利陈述变多。
限制每秒恳求数目

正在实机测试时,做完每秒限制后,由于每秒经由过程一个恳求,其他恳求皆被回绝。
150557y9n9jjjwlb0ln04j.jpg
nginx -s relaod ##变动完设置文件后,重启效劳。
150557i5m07nx7fbx25ann.jpg

限制每次会见恳求数目,排队

150557jtnhltph8lebt8fh.jpg
nginx -s relaod ##变动完设置文件后,重启效劳
150558z2baou1bupioyou1.jpg
此时,倡议恳求时,会呈现提醒等候界里。
150558c2p9u6fji6tu9tpd.jpg
恳求工夫,也会变少。由于之前做过每秒只许可经由过程一个恳求的限制,且一次会见只处置5个恳求。除第一个恳求没有需求排队中,完成一切恳求约莫要9秒阁下。
无提早

无提早的设定,意义是正在有会见时没有思索等候工夫的标题问题。只处置第一工夫能够处置的恳求。之前设定过第一工夫只处置5个恳求。正在那根柢上,除第一个恳求和以后的5个恳求,一共6个恳求。剩下的恳求会失利。
150559lo0ffosj2zdf182o.jpg
nginx -s reload ####变动完设置文件后,重启效劳。
150559d2p6xwp2x1zlyzep.jpg

限制带宽

我们常日里正在网盘大概其他资本分享路子下载时,发明最开端很快。但终极下载速率会被保持正在一个不变的区间内乱。那个实在便是遭到带脱期定的影响。
150559vo1yaz2jf1237f1j.jpg
那里限制带宽每秒200k。
150559nm8lk5ex1lg21798.jpg
我们会见的文件大小为444k,共会见10次,算下去完毕此次会见约莫需求20秒阁下。(之前做过的无提早设定要正文失落。)
150600c52osw2l231peuwo.jpg

6、设置办理

主动索引

主动索引的设定,能够正在会见浏览器时,愈加便利,简朴。很年夜水平上制止了利用过程当中烦琐天输进步调。
150600e55o0dn2icbloneu.jpg
nginx -s relaod ##变动完设定后重启效劳。
测试:
正在浏览器搜刮172.25.37.1/download
150601mgrgjiw1awj7vqvw.jpg

nginx exprie 缓存设置

缓存能够低落收集的带宽,进步会见的速率。
150601p7sfwcvkk5ii9fcv.jpg
设置文件中编纂缓存工夫为365天。
实机中测试:
curl -I 172.25.37.1/download/vim.jpg
150601h83957qttu6frb8t.jpg

表示缓存工夫终极到2022年的8月26号。
日记轮询

cd /opt/ ##该目录是体系自有的
vim nginx.sh
  1. #!/bin/bash
  2. cd /usr/local/nginx/logs && mv access_$(date +%F -d -1day).log
  3. kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
复造代码
cd /usr/local/nginx/logs
ls ----> access__2021-09-04.log
日只记载办理,节流磁盘的io耗损

vim /usr/local/nginx/conf/nginx.conf
150601s8u6xppjy387z7tc.jpg
nginx -s reload ##变动完设置文件后,重启效劳。
测试:
网页搜刮:172.25.37.1/status
150602gxw6qpec00i2whxi.jpg

站面目录战文件限制

vim /usr/local/nginx/conf/nginx.conf(deny那一止得正文失落)
150602cv2dna7sarn2avxv.jpg
nginx -s reload ##变动完设置文件后,重启效劳
测试:实机取sever(172.25.37.1)
curl localhost/status
实机:
150603y5fr3e5jtgkn8k34.jpg
sever1:
150603l2f422o9rfedf9rj.jpg

设置文件中设定只许可172.25.37.1那台主机能够会见,其他反会见恳求局部回绝。
中文治码打点

nginx没有撑持中笔墨符的,正在会见浏览器时,中文默许会成为治码。
cd /usr/local/nginx/html vim index.html: hellow world 您好天下
网页搜刮:172.25.37.index.html
150603bm9pusgkz77yjejk.jpg
能够给看到,“您好天下”那其中笔墨符串是治码。
150604xm530h5vd8gdgi50.jpg
设置文件中编进charset utf-8,重启效劳后。nginx效劳便会撑持中文。
此时浏览器会见:172.25.37.1/index.html:
150604d7lx3gc78rdql9lf.jpg
中文治码的标题问题获得打点。
7、重定背

1、避免域名歹意剖析到效劳器ip

回绝会见,报错范例为500

150604qqq1tazs8te18a3f.jpg
nginx -s reload ##变动设置文件后,重启效劳
测试:
浏览器会见:172.25.37.1
150604g10pk0oig2a5klgp.jpg
报错范例为500。
将一切会见重定背到指定域名

vim /usr/local/nginx/conf/nginx.conf
150605jfe8owrd8f88crwv.jpg
nginx -s reload ##变动设置文件后,重启效劳
150605nhqw91ekr5hffdr5.jpg

2、端心重定背

编纂设置文件,将80端心定背到443端心
150605cqmim93pigiqggsx.jpg
cd /etc/pki/tls/certs make cert.pem mv cert.pem /usr/local/nginx/conf nginx -t nginx -s reload netstat -antlp | grep nginx
150606jr9xib46d49ab4z6.jpg
测试:
curl -I www.westos.org
150606utu3x9z299xv9ahu.jpg

3、假造主机重定背

!!!留意剖析文件的编写!!!
www.westos.org从头定背到bbs.westos.org

vim /usr/local/nginx/conf/nginx.conf
150606q6ib4qw6g4ubgx4s.jpg
nginx -s reload
测试:
curl -I www.westos.org
150606w6sdglg5u1vss19t.jpg
浏览器,输进www.westos.org,会跳转到bbs.westos.org
150607ff8281lyoa98hwy8.jpg

bbs.westos.org重定背www.westos.org

150607o5ctli23zckmfcff.jpg

nginx -s reload
测试:
curl -I bbs.westos.org
150607xspapp5mffvt1msc.jpg
浏览器,输进bbs.westos.org,会跳转到www.westos.org/bbs
150607toc4jwo9joxx68x7.jpg


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则