Nginx源码安装

Nginx源码包:链接: Nginx-1.19.1 提取码: x4cg
源码安装步骤:

  1. tar zxf nginx-1.19.1.tar.gz

  2. 解决nginx源码编译的依赖性 yum install gcc pcre-devel openssl-devel -y

  3. 检测安装环境./configure --prefix=/usr/local/nginx --with-http_ssl_module --prefix= 参数后跟的是安装路径

  4. Makefile文件所在的目录,进行make && make install

  5. 为了使安装后的文件更小,可以不需要gcc中的debug参数,nginx解压目录 下的auto/cc/gccNginx反向代理实现apache服务的负载均衡

  6. 可以通过修改nginx 解压目录下的 src/core/nginx.h 来使版本号只显示nginxNginx反向代理实现apache服务的负载均衡

  7. 再次执行 3和4 的步骤,进行源码安装,安装后的目录就很小
    Nginx反向代理实现apache服务的负载均衡

  8. ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx 可以使nginx 直接在命令行中调用

调用方法 作用
nginx 打开nginx服务
nginx -t 检测nginx的配置文件有没有语法错误
nginx -s stop 关闭nginx服务
nginx -V 显示详细信息
  1. 建立/usr/lib/systemd/system/nginx.service,文件内容如下,就可以通过所以systemctl 的方式启动nginx
    Nginx反向代理实现apache服务的负载均衡

利用Nginx反向代理实现apache服务的负载均衡

轮叫调度算法(Round Robin 默认使用)

实现步骤:

  1. 建立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反向代理实现apache服务的负载均衡Nginx反向代理实现apache服务的负载均衡
  1. 编辑nginx配置文件vim/usr/local/nginx/conf/nginx.conf
    Nginx反向代理实现apache服务的负载均衡Nginx反向代理实现apache服务的负载均衡
  1. systemctl start nginx 在宿主机的/etc/hosts中配置 解析 172.25.3.2 www.westos.org ,事先在server3和server4 apache的测试页中放入了主机名,当server3和server4的http服务打开之后,会看到由轮叫算法调度,访问10次,依次交替出现server3和server4。
    Nginx反向代理实现apache服务的负载均衡
    由于nginx 自带会对后端服务器进行健康检查,所以说如果后端的某一个服务器down掉之后,客户端访问的时候就不会访问那个被down掉的服务器
    Nginx反向代理实现apache服务的负载均衡
  1. 在定义组的时候增加权重
    Nginx反向代理实现apache服务的负载均衡
    测试:Nginx反向代理实现apache服务的负载均衡

最小连接调度算法

一个请求以最少的活动连接数发送到服务器,同样考虑服务器权重:
实验配置:
只用在upstream 定义组的时候加入least_conn,其他的配置都一样
Nginx反向代理实现apache服务的负载均衡

IP_HASH 算法

请求发送到的服务器由客户端IP地址决定。在这种情况下,使用IPv4地址的前三个八进制数或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求能够到达相同的服务器,除非该服务器不可用。
实验配置: 在upstream 定义组的时候加入ip_hash,将backup 注释
Nginx反向代理实现apache服务的负载均衡
测试:Nginx反向代理实现apache服务的负载均衡

sticky 调度算法

通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上,默认标识名为route
需要下载模块:链接: sticky模块 提取码: piqd
模块导入步骤:

  1. 解压下载好的zip包(我的是和nginx解压目录一个目录下)unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
  2. 在nginx的安装目录(/root/nginx-1.19.1)make clean
  3. ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42 检测安装环境是否完备,–add-module 后面跟的是nginx模块解压目录的路径
  4. make && make install 安装

重启服务测试:
Nginx反向代理实现apache服务的负载均衡
会一直访问一个服务器,只到删除浏览器的缓存,才会访问另一个浏览器

Keepalive + Nginx

目的:实现Nginx的高可用

实验步骤:

  1. 将server2 上完整的nginx 目录复制到serever1上,并在server1上做和server2一样的配置。启动nginx查看是否能访问。
  1. 两边配置keepalive 配置文件,都需要检测脚本来实现对nginx服务的健康检测, vim /opt/check_nginx.sh , 记得给该脚本添加 +x 权限 chomod +x /opt/check_nginx.sh
    Nginx反向代理实现apache服务的负载均衡
  1. 修改server1 和server2的keepalive配置文件
    server1:
    Nginx反向代理实现apache服务的负载均衡
    server2:
    Nginx反向代理实现apache服务的负载均衡
  1. 测试: 修改宿主机的‘www.westos.org’对应的解析地址为vip地址,即:172.25.3.100 www.westos.org
    当停止一个节点的nginx服务时,虚拟ip会自动漂移到另一个节点上,当客户端访问时并不会影响Nginx反向代理实现apache服务的负载均衡

相关文章: