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.xdnf.cn/news/1483825.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【linux】服务器安装NVIDIA驱动

【linux】服务器安装NVIDIA驱动 【创作不易,求点赞关注收藏】😀 文章目录 【linux】服务器安装NVIDIA驱动一、关闭系统自带驱动nouveau二、下载英伟达驱动三、安装英伟达驱动1、禁用X服务器和相关进程2、在TTY终端安装驱动3、验证是否安装成功4、重新启…

HarmonyOS根据官网写案列~ArkTs从简单地页面开始

Entry Component struct Index {State message: string 快速入门;build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width(100%).textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily(HarmonyHeiTi-Bold).lineHeight(33)Scroll() {Column() {Ba…

Spring循环依赖与三级缓存

Spring循环依赖是指两个或多个Bean相互依赖,导致Spring无法在不部分实例化这些Bean的情况下完成它们的创建。在Spring框架中,为了解决循环依赖问题,Spring使用了三级缓存机制。 假设BeanA依赖BeanB,BeanB依赖BeanA,Spr…

Nginx详解(超级详细)

目录 Nginx简介 1. 为什么使用Nginx 2. 安装Nginx Nginx的核心功能 1. Nginx反向代理功能 2. Nginx的负载均衡 3 Nginx动静分离 Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协…

2-35 基于matlab的四足液压机器人设计程序

基于matlab的四足液压机器人设计程序,界面化例程,输入液压机器人结构参数,输出液压缸的行程、推力和速度。程序已调通,可直接运行。 2-35 四足液压机器人 液压机器人结构参数 - 小红书 (xiaohongshu.com)

Postman、Apifox、Apipost用哪个?

Postman、Apifox、Apipost都是流行的API接口管理工具,它们各自具有不同的特点和优势,因此哪个更好用取决于具体的使用场景和需求。以下是对这三个工具的比较分析: 一、Postman 特点与优势: 支持多种请求方式:包括GE…

基于Python+Django+MySQL的心理咨询预约系统

心理咨询预约系统 DjangoMySQL 基于PythonDjangoMySQL的心理咨询预约系统 项目主要依赖Django3.2,MySQL 支持随机验证码生成与登录验证 简介 基于PythonDjangoMySQL的心理咨询预约系统通过连接数据库获取数据,登录新增随机数字验证码验证。具体可以看…

VisualRules-Web案例展示(一)

VisualRules单机版以其卓越的功能深受用户喜爱。现在,我们进一步推出了VisualRules-Web在线版本,让您无需安装任何软件,即可在任何浏览器中轻松体验VisualRules的强大功能。无论是数据分析、规则管理还是自动化决策,VisualRules-W…

GESP CCF C++ 四级认证真题 2024年6月

第 1 题 下列代码中,输出结果是( ) A. 12 24 24 12 B. 24 12 12 24 C. 12 12 24 24 D. 24 24 12 12 第 2 题 下面函数不能正常执行的是() A. B. C. D. 第 3 题 下面程序…

理解UI设计:UI设计师的未来发展机遇

UI设计师的出现是互联网时代的设计变革。随着移动互联网的快速发展,移动产品设计师非常短缺。高薪资让许多其他行业的设计师已经转向了UI设计。那么什么是UI设计呢?UI设计师负责什么?UI设计的发展趋势和就业前景如何?这些都是许多…

JMX 反序列化漏洞

前言 前段时间看到普元 EOS Platform 爆了这个洞,Apache James,Kafka-UI 都爆了这几个洞,所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX(Java Management Extensions,即 Java 管理扩展&#xff0…

PyTorch 深度学习实践-加载数据集

视频指路 参考博客笔记 参考笔记二 目录标题 介绍课程代码作业实现 介绍 在深度学习时用min-batch来平衡训练时间和性能上的需求,之后训练周期要写成两层嵌套循环。epoch:所有训练样本进行完一次前向和反向传播,batch-size:训练的…

Yolo-World网络模型结构及原理分析(更新中)

文章目录 概要一、整体架构分析二、详细结构分析1.YOLO检测器1.1 Backbone1.2 Head1.3 各模块的过程和作用Conv卷积模块C2F模块BottleNeck模块SPPF模块Upsampling模块Concat模块 2.文本编码器 Text Encoder 概要 尽管YOLO(You Only Look Once)系列的对象…

AI(Adobe lliustrator)教程+软件包

简介: 软件主要应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目。 通常用于创建LOGO(商标或徽标),图标,插图…

实践之K近邻算法实现红酒聚类

前言 K近邻算法是一种用于分类和回归的非参数统计方法,通过计算样本与训练样本的距离,找出最接近的k个样本进行投票来确定分类结果。算法的基本要素包括K值、距离度量和分类决策规则。 K值决定了邻居的影响程度,距离度量反映了样本间的相似度…

基于Java的汽车租赁管理系统设计(含文档、源码)

本篇文章论述的是基于Java的汽车租赁管理系统设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 摘 要 系统运行截图 系统总体设计 系统论文 资源下载 摘 要 近年来,随着改革开放…

旋转编码器 - 从零开始认识各种传感器【第八期】

旋转编码器|从零开始认识各种传感器 1. 什么是旋转编码器? 旋转编码器是一种能够将旋转位置变化转换为数字信号输出的装置,被广泛应用于机械设备、自动化控制、测量仪表等领域。它是电位计的现代数字等效产品,比电位计功能更广泛。 电位计只…

数据结构——堆,堆排序

前提 我们都知道内存分布中的堆区(Heap section),new出来的空间都在堆区上。和堆区有一个名字很相近的数据结构——堆(Heap),虽然名称相近,但两者是完全不同的东西。 因为十大排序算法中有一个堆排序,所以从头开始了解下堆这个数…

JAVASE-医疗管理系统项目总结

文章目录 项目功能架构运行截图数据库设计设计模式应用单列设计模式JDBC模板模板设计模式策略模式工厂设计模式事务控制代理模式注解开发优化工厂模式 页面跳转ThreadLocal分页查询实现统计模块聊天 项目功能架构 传统的MVC架构,JavaFX桌面端项目,前端用…

Linux如何正确安装MySQL数据库

对于Linux安装mysql,如果大家有不会的可以来参考小编的详细安装步骤哦,小编带你一步步走向成功~ 首先对于Linux系统,我们通过小编的上一篇文章中知道安装软件的命令为wget,所以首先需要写出命令获取mysql: wget https://cdn.mys…