实验环境
安装nginx
编译之后才能使用,指定安装路径,ssl模块,监控模块,线程池,文件aio
可以./configure --help
查询
--with
开头的默认disable,编译时不生效,需要手动添加
--without
开头默认enable
缺少gcc编译器
缺少pcre库
redhat中开发包都是以devel结尾的
缺少openssl
make install将程序安装到此目录
实现七层负载均衡
进行软链接
修改配置文件
nginx -s reload 重新加载
nginx -s stop 停止
nginx -t 检查语法
在外部主机查看
nginx自带健康检测
本来是如上图负载均衡
若只开启一个httpd
如果两个都关闭httpd
nginx配置
worker_processes 工作进程数
如果为auto,就表示自动识别系统cpu核心数
work_process 4;
work_cpu_affinity 0001 0010 0100 1000;
如果分配的个数更多,就可以多分配几个worker进程,速度会更快
ps | ax
4个worker进程
系统允许的最大文件数是1024
由文件/etc/security/limits.conf设定
内核允许的最大文件数是95089
work_connections 单个工作进程并发连接数
weight 权重
backup 备份
当22和33down时,启动本机为备用机,或者其他机器均可
访问www.westos.org的时候,使用负载均衡策略
nginx的默认发表文件
看到默认发布页面
23都好着
23都down
只要有一个好,都不会启动backup
ip_hash算法
sticky 扩展调度算法
清理源码 将原来编译过的清理掉
刚才解压的路径
编译
编译后的生成的二进制文件是在objs目录底下,因为是更新,直接将二进制程序覆盖就行
fence
编写nginx脚本
lib是/usr/lib的软链接
[Unit]
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
刷新脚本
设置开机自启动
使用二进制命令的方式关闭nginx
通过脚本控制nginx,打开和查看状态