Linux实战笔记-----lamp架构之nginx源码编译

一、源码编译安装nginx

安装gcc pcre依赖性 openssl依赖性

yum install -y gcc pcre-devel openssl-devel

解压nginx安装包,定制安装

tar zxf nginx-1.20.1.tar.gz
cd nginx-1.20.1

查看编译帮助

./configure --help

安装常用功能

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module	

在这里插入图片描述

make一下

make

make install 一下

make install

在这里插入图片描述

查看端口,发现nginx未开启

netstat -antlp

在这里插入图片描述

开启nginx,再次查看端口,发现开启

cd /usr/local/nginx/sbin
./nginx

在这里插入图片描述
关闭服务,创建软链接,方便全局开启

./nginx -s stop
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx

在这里插入图片描述
为了确保安全,关闭c语言编译debug

nginx -s stop	
vim ~/nginx-1.20.1/auto/cc/gcc

在这里插入图片描述

安装目录下清空缓存

 make clean

在这里插入图片描述
修改相关配置使其不显示版本

vim ~/nginx-1.20.1/src/core/nginx.h	

在这里插入图片描述
查看

curl -I localhost

在这里插入图片描述

查看修改后运行的nginx大小

du -h /usr/local/nginx/sbin/nginx	

在这里插入图片描述
设置nginx开机启动

vim /usr/lib/systemd/system/nginx.service

Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

刷新服务列表,开机启动

systemctl daemon-reload
systemctl enable --now nginx

在这里插入图片描述

二、修改进程的属主

增加一个nginx用户

useradd -M  -d /usr/loacl/nginx -s /sbin/nologin nginx

在这里插入图片描述

修改nginx安装目录的nginx.conf

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
查看

ps ax | grep nginx

在这里插入图片描述

三、并发优化

修改配置文件

vim /usr/local/nginx/conf/nginx.conf

修改工作进程数为自动,模块会自动检测

在这里插入图片描述
添加控制多核cpu的线程模块worker_cpu_affinity

在这里插入图片描述
查看内核支持的最大文件打开数

sysctl -a |grep file

在这里插入图片描述
查看系统支持的最大文件打开数

ulimit -a

在这里插入图片描述
修改进程能并发处理的最大连接数

最大连接数按优先级排序

内核支持最大文件打开数 > 系统支持最大文件打开数 > Worker支持最大文件打开数

在这里插入图片描述

修改系统的最大文件打开数

vim /etc/security/limits.conf

在这里插入图片描述

四、nginx平滑升级

准备nginx-1.21.1的安装包,解压

tar zxf nginx-1.21.1.tar.gz
cd nginx-1.21.1

修改相关配置,瘦身nginx

vim auto/cc/gcc

在这里插入图片描述
配置安装

./configure --with-http_ssl_module --with-http_stub_status_module --prefix=/usr/local/nginx
make

不要make install,保存备份老版本nginx,覆盖安装目录下的老的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-old

\cp -f objs/nginx /usr/local/nginx/sbin/nginx

获取当前nginx主进程pid

ps ax|grep nginx

在这里插入图片描述
干掉master进程

kill -USR2 pid

关闭原worker进程但保留主进程,目的是有机会可以回退

kill -WINCH 老的master的id

五、nginx负载均衡

需要三台虚拟机来进行实验, 将安装好的nginx目录使用scp命令通过ssh传输,使用systemctl来控制nginx,告诉 Systemd 怎么启动这个 Unit

其余两台执行
scp -r /usr/local/nginx/ server2:/usr/local/nginx/
scp /usr/lib/systemd/system/nginx.service server2:/usr/lib/systemd/system/

配置nginx步骤参上

修改默认发布页为本机server号

echo serverx  > /usr/local/nginx/html/index.html

回到server1,使用nginx的http upstream 模块实现客户端访问后端的负载均衡,在http加入upstream模块,模块命名为westos

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

在这里插入图片描述
刷新服务,加入地址解析
在这里插入图片描述
测试访问

for i in {1..10}; do curl www.westos.org; done

在这里插入图片描述

装修改权重,再次测试,发现172.25.34.2的权重为2,有三分之二的几率被访问
在这里插入图片描述
测试
在这里插入图片描述

加入backup,只要在希望成为后备的服务器ip后面多添加一个backup参数,这台服务器就会成为备份服务器。
在这里插入图片描述
使用nginx sticky实现基于cookie的负载均衡
关闭nginx服务,装一个插件nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip

下载unzip压缩工具,并且解压文件

yum install unzip -y
unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip

进入到nginx的源码编译目录,带上模块–add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

./configure --with-http_ssl_module --with-http_stub_status_module --prefix=/usr/local/nginx --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

执行make,不install,可以看到nginx从928到936 说明插件安装完成
在这里插入图片描述
新的nginx覆盖旧的nginx,重启nginx

cp -f objs/nginx /usr/local/nginx/sbin/nginx

浏览器访问server1
在这里插入图片描述
在浏览器中删掉cookie,重新访问
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值