• nginx的安装及使用


    1. 回顾

    1. 一些命令
      [1]查看文件内容: cat head tail more
      [2]搜索文件  find 目录 -name '文件名'
      [3]压缩和解压命令 tar [zxvf| zcvf] 压缩文件名 
      [4]防火墙的命令: 
          systemctl status firewalld
          systemctl stop firewalld
          systemctl restart firewalld
          systemctl disable firewalld
          firewall-cmd --add-port=port/tcp  --zone=public --permanent
          firewall-cmd --remove-port=port/tcp  --zone=public --permanent
          firewall-cmd --list-port
          
       [5]查看进程 ps -ef | grep 进程名  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2. 大纲

    1. shell脚本---看懂
    2. nginx--反向代理和负载均衡的服务器
    
    • 1
    • 2

    4. nginx

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WEP9bWNy-1659251766685)(assets/1658995559553.png)]

    代理服务器–使用比较多的为nginx代理服务器。

    什么是nginx.

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应,
    
    • 1

    现在由哪些企业正在使用nginx?

    1. 京东  2.淘宝 3.腾讯 4. 新浪 5.网易等
    
    • 1

    如何使用nginx

    (1)安装nginx软件所需的依赖插件

    yum install -y gcc-c++
    yum install -y pcre pcre-devel
    yum install -y zlib zlib-devel 
    yum install -y openssl openssl-devel
    
    • 1
    • 2
    • 3
    • 4

    (2)把我们的nginx安装包上传到linux中并解压

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qe0QTj86-1659251766685)(assets/1658996906147.png)]

    (3)创建一个目录作为nginx的安装目录

    mkdir /usr/nginx
    
    • 1

    (4)进入nginx的解压目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFCi8yQh-1659251766685)(assets/1658997037776.png)]

    (5)设置nginx的安装路径为上面/usr/nginx

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nWTvae0O-1659251766685)(assets/1658997150585.png)]

    (6) 编译–安装

    make 
    make install ---安装
    
    • 1
    • 2

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ewP6FswL-1659251766686)(assets/1658997350070.png)]

    conf: 配置目录

    html: 放置静态资源的。

    logs: 日志

    sbin: 启动和关闭nginx的脚本

    (7)启动nginx

    > [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShzDAIpZ-1659251766686)(assets/1658997698214.png)]

    ./nginx 开启nginx

    ./nginx -s stop 关闭nginx

    ./nginx -s reload 重新加载配置文件—修改完配置文件后使用该命令

    (8) 访问nginx服务器

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OH2oy8dJ-1659251766686)(assets/1658997956192.png)]

    关闭防火墙:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7KqUVq0q-1659251766686)(assets/1658998009291.png)]

    聊聊nginx配置文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ImvtYJVL-1659251766686)(assets/1658998230927.png)]

    在这里插入图片描述

    5. nginx三大核心

    反向代理:

    负载均衡:

    动静分离:

    5.1 反向代理

    正向代理: 该服务器代理的为客户端,对于后面真实的服务器来说,不知道访问者的地址。比如:翻墙软件。

    在这里插入图片描述

    反向代理: 该服务器代理的为服务器端,对于客户来说不知道访问的真实服务器。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJdjUz8L-1659251766687)(assets/1658999690923.png)]

    如何使用nginx完成反向代理

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2NE5XC8t-1659251766688)(assets/1658999976527.png)]

    准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.—springboot项目

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WhuTNXGE-1659251766688)(assets/1659000169405.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGtzOJwu-1659251766688)(assets/1659000213832.png)]

    启动真实项目

    java -jar xxxx.jar
    
    • 1

    修改nginx配置文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hE5bQqkR-1659251766688)(assets/1659000480390.png)]

    重新加载nginx

    ./nginx -s reload
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTxypDrV-1659251766688)(assets/1659000636188.png)]

    自己独立完成反向代理

    5.2 负载均衡

    当项目部署到不同的服务器上时
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.2.1负载均衡的策略

    默认负载均衡的策略为轮询策略。

    1)、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    2)、weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    3)、ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    4)、fair(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    5)、url_hash(第三方)

    5.3 nginx—动静分离

    实现对静态资源的统一管理。
    静态资源统一放在nginx上。
    在这里插入图片描述
    更改nginx.conf 这个配置文件
    在这里插入图片描述

    5.4 nginx—高可用

    对比与单点架构,nginx的高可用架构增加了一台nginx和keepalived机制,也就是每台nginx服务器上都有安装keepalived,而keepalived是遵循VRRP(虚拟路由冗余协议)来通信和工作的,master正常工作时会向其他backup机器(>=1台)不停的广播心跳包,当backup机器收不到master的心跳包时就会重新选举一个master来顶上,当原来的master恢复之后,又会把流量交回给它,以此便可以达到高可用机制

    (1)需要再每个nginx所在的主机上安装keepalived

    yum install -y keepalived 安装keepalived

    rpm -q -a keepalived 检查是否安装keepalived

    **默认在/etc/keepalived目录**
    
    • 1

    在这里插入图片描述

    global_defs {
    	 notification_email {
    		 acassen@firewall.loc
    		 failover@firewall.loc
    		 sysadmin@firewall.loc
    	 }
    	 notification_email_from Alexandre.Cassen@firewall.loc
    	 smtp_server 192.168.17.129
    	 smtp_connect_timeout 30
    	 # 通过它,可以访问到主机,在hosts文件中,要做映射关系,类似于 127.0.0.1 LVS_DEVEL
    	 router_id LVS_DEVEL  
    }
    
    vrrp_script chk_http_port {
    	 script "/usr/local/src/nginx_check.sh"	 # 执行脚本所在的位置
    	 interval 2 	#检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
    	 weight 2
    }
    	
    vrrp_instance VI_1 {
    	 state MASTER	 # 备份服务器上将 MASTER 改为 BACKUP
    	 interface ens33	 # 绑定的网卡
    	 virtual_router_id 51	 # 主、备机的 virtual_router_id 必须相同
    	 priority 90 	# 主、备机取不同的优先级,主机值较大,备份机值较小
    	 advert_int 1 	#每隔一秒发送一次心跳,确保从服务器是否还活着
    	 authentication {		# 心跳检测需要的密码
    		 auth_type PASS
    		 auth_pass 1111
     	}
    	 virtual_ipaddress {
    	 192.168.17.50 	# VRRP H 虚拟地址
    	 }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    (2)在/usr/local/src 添加检测脚本,检查Nginx是否还活着

    #!/bin/bash
    A=`ps -C nginx --no-header |wc -l`
    if [ $A -eq 0 ];then
     /usr/local/nginx/sbin/nginx 	#Nginx启动命令的位置
     sleep 2
     if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
     killall keepalived
     fi
    fi
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    (3)把两台服务器上 nginx 和 keepalived 启动

    启动 nginx: ./nginx 启动 keepalived: systemctl start keepalived.service

    可以使用ipconfig,查看虚拟Ip的绑定
    在这里插入图片描述
    5、最终测试
    在这里插入图片描述
    (2)把主服务器上的(192.168.17.129)Nginx 和 keepalived 停止,再输入 192.168.17.50,依旧可以访问Nginx。
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    qDebug().noquote()、qDebug().nospace()和 DEFINES+= QT_NO_DEBUG_OUTPUT作用
    解决 npm install 报错的问题
    C++ 类和对象(上)------超详细解析,小白必看系列
    Java并发基石—CAS原理实战
    信奥中的数学之入门组(面向小学四年级至六年级以及初一学生)
    Java 21 虚拟线程如何限流控制吞吐量
    idea分析栈帧链
    .NET Core 使用 System.Threading.Channels消息队列
    guava本地缓存CacheLoader使用
    Java露营基地预约小程序预约下单系统源码
  • 原文地址:https://blog.csdn.net/weixin_48112109/article/details/126085962