Nginx的核心功能

1. Nginx的核心功能

1.1 nginx反向代理功能

正向代理

代理的为客户端,对于服务器不知道真实客户的信息。例如:翻墙软件

在这里插入图片描述

反向代理服务器

代理的为服务器端。对于客户来说不知道服务器的信息。例如:nginx

在这里插入图片描述

项目部署图

在这里插入图片描述

web项目部署的虚拟机和Nginx的虚拟机可以为两台服务器【也可以在同一台虚拟机上】,且网络连接要保持一致,桥接网络无法访问NAT网络

若Nginx部署在桥接网络模式的虚拟机上,web项目部署在NAT网络模式的虚拟机上,此时,通过访问桥接模式的虚拟机的ip无法访问web项目

若二者均部署在NAT网络模式的虚拟机上,就可以成功访问

因为不在同一个网段

反向代理步骤

  1. 配置Nginx

     server {listen 82;server_name localhost;location /{# 代理的服务器地址proxy_pass   http://192.168.111.XXX:8080;}}
    

    配置文件在/usr/nginx/conf目录下——nginx.conf文件

  2. 防火墙放行对应的端口号

    firewall-cmd --add-port=82/tcp --zone=public --permanent
    
  3. 重启防火墙

    systemctl restart firewalld
    
  4. 启动Nginx

    ./usr/nginx/sbin/nginx
    
  5. 访问时输入nginx的地址和端口

1.2 nginx的负载均衡

负载均衡(Load Balance):把请求分摊到多个操作单元上进行执行,例如Web服务、FTP服务器、企业关键应用服务器和其他关键任务服务器等,从而共同完成工作任务

web项目必须搭建集群模式

在这里插入图片描述

web服务器项目至少搭建2台以上才可以达到集群模式

运行springboot项目

在这里插入图片描述

  • 运行springboot项目
java -jar xxx.jar

注意:端口号要放行,放行后要重启防火墙

配置nginx完成负载均衡

#定义集群名称
upstream lay{#真实web服务器集群信息server ip:端口号;server ip:端口号;
}
server{listen 83;#监听的端口号server_name localhost;location /{proxy_pass http://lay;#集群名称}
}

重新加载nginx配置

/usr/nginx/sbin/nginx -s reload

测试

http://ip:端口号/资源

1.3 负载均衡的策略

  • 默认为轮询

  • 权重策略:服务器硬件配置不同时

#定义集群名称
upstream lay{#真实web服务器集群信息,weight的值越大权重越大,访问频率越高server ip:端口号 weight=权值1;server ip:端口号 weight=权值2;
}
server{listen 83;#监听的端口号server_name localhost;location /{proxy_pass http://lay;#集群名称}
}

weight的值越大权重越大,访问频率越高

  • ip_hash策略:根据访问者客户的ip固定访问对应的web服务器
#定义集群名称
upstream lay{#真实web服务器集群信息server ip:端口号;server ip:端口号;ip_hash;
}
server{listen 83;#监听的端口号server_name localhost;location /{proxy_pass http://lay;#集群名称}
}

ip_hash;

  • 花钱买第三方策略插件

1.4 nginx动静分离

动:动态资源【接口】

静:静态资源【css、js、image】

分离:之前我们把静态资源和动态资源全部放在web服务器下。现在把静态资源放入nginx服务器下。动态资源在web服务器下

在这里插入图片描述

步骤:

  1. 准备web项目

  2. 把静态资源放到nginx中

    放在nginx安装目录的创建的static目录中

  3. 配置nginx

    server{listen 84;server_name localhost;location /{proxy_pass http://ip:端口号;}#以 下面的内容 结尾location ~ \.js|.css|.jpg|.png|.jpeg|.gif|.ico|.mp3|.mp4|.avi${root static;#static中包含静态资源}
    }
    

1.5 nginx的HA高可用的搭建

1.5.1 高可用的原理–keepalived

在这里插入图片描述

  1. nginx如果宕机,导致客户无法访问项目。解决:搭建nginx的高可用
  2. 如果nginx主节点宕机,,如果切换到从节点【自动】
  3. 客户难道要记住两个nginx服务器的ip吗?不可能。

2和3的问题,通过keepalived组件解决

1.5.2 搭建HA高可用

安装keepalived

yum install -y keepalived

默认安装在/etc/keepalived

在这里插入图片描述

修改keepalived.conf配置文件

主机点

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc# ip的地址smtp_ server 虚拟机的ipsmtp_connect_timeout 30router_id 虚拟机ip
}
# 执行脚本
vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2  # 每2s执行一次该脚本weight -20  # keepalive宕机  权重-20 优先级
}vrrp_instance VI_1 {state MASTER # 角色interface ens33 # 网卡名virtual_router_id 51 # id 保证主从相同priority 100  # 优先级 主节点大于从节点advert_int 1authentication {auth type PASSauth pass 1111}virtual_ipaddress { ip50 # 虚拟ip. 使用逗号隔开}track_script {chk_http_port # 追踪nginx脚本}
}

从节点

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc# ip的地址smtp_ server 虚拟机的ipsmtp_connect_timeout 30router_id 虚拟机ip
}
# 执行脚本
vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2  # 每2s执行一次该脚本weight -20  # keepalive宕机  权重-20 优先级
}vrrp_instance VI_1 {state MASTER # 角色interface ens33 # 网卡名virtual_router_id 51 # id 保证主从相同priority 100  # 优先级 主节点大于从节点advert_int 1authentication {auth type PASSauth pass 1111}virtual_ipaddress { ip50 # 虚拟ip. 使用逗号隔开}track_script {chk_http_port # 追踪nginx脚本}
}

nginx_check.sh脚本文件

该脚本文件可以放在/usr/local/src目录下

#!/bin/bash
# 检查是否开启nginx---统计nginx进程的个数
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];thenpkill -9 keepalived
fi

详细脚本

A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then    #如果nginx没有启动就启动nginx                        /app/nginx/sbin/nginx                #重启nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移pkill keepalived                    fi
fi

在这里插入图片描述

修改权限:chmod 777 nginx_check.sh

使其成功启动

启动

nginx //nginx的启动命令
keepalived的启动命令:
systemctl start|stop keepalived

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙语言基础类库:【@system.notification (通知消息)】

通知消息 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.notification]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import notification fro…

httpx 的使用

httpx 是一个可以支持 HTTP/2.0 的库 还有一个是: hyper 库 这里有一个由HTTP/2.0的网站: https://spa16.scrape.center/ 使用 requests 库 进行爬取 import requests url https://spa16.scrape.center/ response requests.get(url) print(response…

达梦数据库的系统视图v$arch_file

达梦数据库的系统视图v$arch_file 在达梦数据库中,V$ARCH_FILE 是一个动态性能视图,用于显示当前数据库的归档日志文件信息。这个视图可以帮助数据库管理员监控和管理归档日志文件,确保数据库的备份和恢复过程顺利进行。 查询本地归档日志信…

Unity UGUI Image Maskable

在Unity的UGUI系统中,Maskable属性用于控制UI元素是否受到父级遮罩组件的影响。以下是关于这个属性的详细说明和如何使用: Maskable属性 Maskable属性: 当你在GameObject上添加一个Image组件(比如UI面板或按钮)时&…

ctfshow-web入门-php特性(web127-web131)

目录 1、web127 2、web128 3、web129 4、web130 5、web131 1、web127 代码审计: $ctf_show md5($flag); 将 $flag 变量进行 MD5 哈希运算,并将结果赋值给 $ctf_show。 $url $_SERVER[QUERY_STRING]; 获取当前请求的查询字符串(que…

开源防病毒工具--ClamAV

产品文档:简介 - ClamAV 文档 开源地址:Cisco-Talos/clamav:ClamAV - 文档在这里:https://docs.clamav.net (github.com) 一、引言 ClamAV(Clam AntiVirus)是一个开源的防病毒工具,广泛应用…

【算法专题】归并排序

目录 1. 排序数组 2. 交易逆序对的总数 3. 计算右侧小于当前元素的个数 4. 翻转对 总结 1. 排序数组 912. 排序数组 - 力扣(LeetCode) 今天我们使用归并排序来对数组进行排序,实际上,归并排序和快速排序是有一定相似之处的&a…

Android View的绘制流程

1.不管是View的添加,还是调用View的刷新方法invalidate()或者requestLayout(),绘制都是从ViewRootImpl的scheduleTraversals()方法开始 void scheduleTraversals() {if (!mTraversalScheduled) {mTraversalScheduled true;mTraversalBarrier mHandler…

Linux中nohup(no hang up)不挂起,用于在系统后台不挂断地运行命令,即使退出终端也不会影响程序的运行。

nohup的英文全称是 no hang up,即“不挂起”。这个命令在Linux或Unix系统中非常有用,主要用于在系统后台不挂断地运行命令,即使退出终端也不会影响程序的运行。默认情况下(非重定向时),nohup会将输出写入一…

C++之类与对象(1)

目录 前言 1.类的定义 1.1类定义的格式 1.2访问限定符 1.3类域 1.3.1类定义一个作用域 1.3.2类成员在类的作用域中 1.3.3在类体外定义成员 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 4.选择题补充练习 结束语 前言 Hello,友友们,好久…

Linux安装mysql(超详细版)

步骤1:新建一个文件夹,专放从网络下载的文件 [rootiZ2zeh6vyxsq620zifz8jaZ home]#mkdir soft #在根目录下创建也可以 步骤2:切换目录,进入soft文件中 [rootiZ2zeh6vyxsq620zifz8jaZ /]# cd home/ #若第一步文件建在根目…

牛客周赛 Round 51

目录 A.小红的同余 B.小红的三倍数 C.小红充电 D.小红的gcd E.小红走矩阵 F.小红的数组 这次周赛题目比较简单,算法题也基本上是板子题,出得很好(~ ̄▽ ̄)~ A.小红的同余 思路:签到题&am…

Android Studio 不再支持windows 7

Android Studio 一打开就报错: 无法找到入口 无法定位程序输入点 CreateAppContainerProfle 于动态链接库USERENV.dII 上。 截图如下: 经调查,是因为系统版本不兼容。 我目前的电脑环境:windows 7,但是现在的Android Studio要…

24年Hvv准备,6大方向,33篇技战法

进去不少小伙伴后台留言说需要技战法,因此小编对市面上的技战法进行了收集和总结,并对收集来的技战法进行了分类,总共分了6大类,共计33篇: 有需要的小伙伴关注我,点击在看,并私信回复“技战法”…

基于Java的原创歌曲分享平台

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBootMyEclipse 工具:MyEclipse、B/S架构 系统展示 首页 用户注册界面 音乐分享…

【python】OpenCV—Coordinates Sorted Clockwise

文章目录 1、需求介绍2、算法实现3、完整代码 1、需求介绍 调用 opencv 库,绘制轮廓的矩形边框,坐标顺序为右下→左下→左上→右上,我们实现一下转化为熟悉的 左上→右上→右下→左下 形式 按照这样的顺序组织边界框坐标是执行透视转换或匹…

21天学通C++:第十三、十四章节

第十三章:类型转换运算符 类型转换是一种机制,让程序员能够暂时或永久性改变编译器对对象的解释。注意,这并不意味着程序员改变了对象本身,而只是改变了对对象的解释。可改变对象解释方式的运算符称为类型转换运算符。 为何需要…

数据库端口LookUp功能:从数据库中获取并添加数据到XML

本文将为大家介绍如何使用知行之桥EDI系统数据库端口的Lookup功能,从数据库中获取数据,并添加进输入的XML中。 使用场景:期待以输入xml中的值为判断条件从数据库中获取数据,并添加进输入xml中。 例如:接收到包含采购…

简述乐观锁和悲观锁——Java

悲观锁和乐观锁 悲观就是任何事都认为会往坏处发生,乐观就是认为任何事都会往好处发生。 打个比方,假如一个公司里只有一台打印机,如果多个人同时打印文件,可能出现混乱的问题,他的资料打印在了我的资料上&#xff0…

Yolov8网络结构学习

详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署 深入解析YOLOv8:网络结构与推理过程 YOLO? You Know! --YOLOV8详解 一:yolov8总体结构 1.Backbone:它采用了一系列卷积和 反卷积层只来提取特征,同时也使用了残差连接和…