nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
*********7层负载均衡***************
使用nginx
真机ip 172.25.254.14 /172.25.14.250
准备server1,server2,server3
需要从网络或者仓库李安装nginx,这里从服务器李找到压缩包,复制到自己真机里,
server1里:安装lftp, lftp 172.25.254.14
寻找/pub/docs/lamp 解压复制好nginx-1.20.1版本的压缩包
可以查看到nginx-1.20.1已建立好,在这个目录下安装脚本,将脚本保存到/usr/local/nginx
根据提示将缺少的软件逐一安装,再次运行,直到不再报错
make 把nginx配置文件复制到/usr/local/nginx下
用一个软链接把nginx 链接到/usr/local/bin
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
开启nginx
******************************
nginx -t 查看语法是否正确
nginx -s reload 重启
nginx -s stop 停止
******************************
在/etc/security/limits.conf 编辑nginx
在server1里用ulimit -a查看 open files
建立新用户 nginx,切换进去ulimit -a对比与server1的open files
在真机需要地址解析 vim /etc/hosts
172.25.14.1 test www.westos.org
这样就可以在真机里查看了
for i in {1..10} ; do curl www.westos.org ; done -----循环10次
解析均衡,,,若关掉server2或server3的httpd,,,,则只会出现其中一个
备用机 server1里
echo server1 > /var/www/html/index.html
如果server2和server都关掉httpd,则我们需要server1这个备用机
需要修改server1的端口 改为8080
for i in {1..10} ; do curl www.westos.org ; done 继续查看是否只有server1
stick是基于cookie的一种负载均衡解决方案,通过分发和识别cookie,使来自同一客户端的请求落在同一台服务器上!
从服务器下载 sticky-module-ng压缩包到server1
解压
cd objs/
ll nginx
du -h nginx ----查看nginx信息
cd到nginx-1.20.1
make clean----清理文件
编辑vi auto/cc/gcc C语言文件
关掉debug下一行
编辑vi src/core/nginx.h
看到nginx所占内存比以前小得多
make --------把nginx配置文件复制到/usr/local/nginx下
为防止出错可以把原先的nginx文件备份一遍
cd /usr/local/nginx/sbin ---在sbin下复制原先的nginx
mv nginx nginx.old
在objs下cp新的nginx到sbin
cp nginx /usr/local/nginx/sbin/
nginx -s stop ---先停掉nginx
nginx ------再开启
curl localhost -I
******平滑升级----不中断***********
下载nginx新版本1.20.2
先编辑原版本文件:
把/usr/local/nginx/sbin原先的nginx改为.new
删除这个.new
把原先.old改为nginx
先查看当前版本号显示1.20.1
结束编辑原文件
解压新版本并安装
cd nginx-1.20.2
make解析
cd /usr/local/nginx/sbin
\cp -f nginx /usr/local/nginx/sbin/ -----把新生成nginx复制到sbin下
ps ax | grep nginx ----查看当前nginx服务
kill -USR2 8778 ----升级程序
kill -WINCH 8778 ----关闭原先进程
ps ax | grep nginx
curl -I localhost 再查看版本号
恢复:
cd /usr/local/nginx/
cd sbin/
cp nginx nginx.new ----把nginx复制变成new
\cp -f nginx.old nginx ----把old变成nginx
kill -HUP 8778 ------把原先进程恢复
kill -WINCH 8860 -----把新版本进程关闭
ps ax | grep nginx
nginx -s stop
nginx
curl -I localhost 查看版本号,变为原先的版本号