Nginx源码安装
Nginx源码包:链接: Nginx-1.19.1 提取码: x4cg
源码安装步骤:
-
tar zxf nginx-1.19.1.tar.gz
-
解决nginx源码编译的依赖性
yum install gcc pcre-devel openssl-devel -y
-
检测安装环境
./configure --prefix=/usr/local/nginx --with-http_ssl_module
--prefix=
参数后跟的是安装路径 -
在
Makefile
文件所在的目录,进行make && make install
-
为了使安装后的文件更小,可以不需要gcc中的debug参数,nginx解压目录 下的
auto/cc/gcc
-
可以通过修改nginx 解压目录下的
src/core/nginx.h
来使版本号只显示nginx -
再次执行 3和4 的步骤,进行源码安装,安装后的目录就很小
-
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
可以使nginx 直接在命令行中调用
调用方法 | 作用 |
---|---|
nginx | 打开nginx服务 |
nginx -t | 检测nginx的配置文件有没有语法错误 |
nginx -s stop | 关闭nginx服务 |
nginx -V | 显示详细信息 |
- 建立
/usr/lib/systemd/system/nginx.service
,文件内容如下,就可以通过所以systemctl 的方式启动nginx
利用Nginx反向代理实现apache服务的负载均衡
轮叫调度算法(Round Robin 默认使用)
实现步骤:
- 建立nginx用户
useradd -s /sbin/nologin nginx
作为nginx 中的usr, 其中worker_connections
和内核,系统, app 有关,内核用sysctl -a | grep file
可以查看允许的最大连接数是多少,和系统的内存有关,系统用ulimit -a
可以查看到系统允许的当前用户的open files,默认是1024,所以通过修改/etc/security/limits.conf
来指定nginx 用户打开文件的个数。
- 编辑nginx配置文件
vim/usr/local/nginx/conf/nginx.conf
systemctl start nginx
在宿主机的/etc/hosts
中配置 解析172.25.3.2 www.westos.org
,事先在server3和server4 apache的测试页中放入了主机名,当server3和server4的http服务打开之后,会看到由轮叫算法调度,访问10次,依次交替出现server3和server4。
由于nginx 自带会对后端服务器进行健康检查,所以说如果后端的某一个服务器down掉之后,客户端访问的时候就不会访问那个被down掉的服务器
- 在定义组的时候增加权重
测试:
最小连接调度算法
一个请求以最少的活动连接数发送到服务器,同样考虑服务器权重:
实验配置:
只用在upstream 定义组的时候加入least_conn
,其他的配置都一样
IP_HASH 算法
请求发送到的服务器由客户端IP地址决定。在这种情况下,使用IPv4地址的前三个八进制数或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求能够到达相同的服务器,除非该服务器不可用。
实验配置: 在upstream 定义组的时候加入ip_hash,将backup 注释
测试:
sticky 调度算法
通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route
需要下载模块:链接: sticky模块 提取码: piqd
模块导入步骤:
- 解压下载好的zip包(我的是和nginx解压目录一个目录下)
unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
- 在nginx的安装目录(
/root/nginx-1.19.1
)make clean
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42
检测安装环境是否完备,–add-module 后面跟的是nginx模块解压目录的路径make && make install
安装
重启服务测试:
会一直访问一个服务器,只到删除浏览器的缓存,才会访问另一个浏览器
Keepalive + Nginx
目的:实现Nginx的高可用
实验步骤:
- 将server2 上完整的nginx 目录复制到serever1上,并在server1上做和server2一样的配置。启动nginx查看是否能访问。
- 两边配置keepalive 配置文件,都需要检测脚本来实现对nginx服务的健康检测,
vim /opt/check_nginx.sh
, 记得给该脚本添加 +x 权限chomod +x /opt/check_nginx.sh
- 修改server1 和server2的keepalive配置文件
server1:
server2:
- 测试: 修改宿主机的‘www.westos.org’对应的解析地址为vip地址,即:
172.25.3.100 www.westos.org
当停止一个节点的nginx服务时,虚拟ip会自动漂移到另一个节点上,当客户端访问时并不会影响