探究Nginx应用场景
1 静态资源
Nginx是一个流行的Web服务器和反向代理服务器,它可以用于托管静态资源。下面是一个简单的案例,展示了如何使用Nginx来提供静态资源。
假设你有一个名为example.com的域名,并且你希望使用Nginx来托管位于/var/www/html目录下的静态资源。
- 配置静态资源路径:在Nginx中,可以使用root指令来指定静态资源的根目录。打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,并添加以下配置:
server { listen 80; server_name example.com; location / { root /var/www/html; index index.html index.htm; }
}
- 在上面的配置中,server_name指令指定了域名,location /指令指定了URL路径匹配规则,root指令指定了静态资源的根目录。
- 重启Nginx:保存并关闭配置文件后,重启Nginx以使更改生效。使用以下命令重启Nginx:
- 上传静态资源:将你的静态资源文件放置在/var/www/html目录中。例如,你可以创建一个名为index.html的文件,并将其放在该目录下。
- 访问静态资源:现在,你可以通过在浏览器中访问http://example.com来访问你的静态资源。如果一切正常,你应该能够看到你在/var/www/html目录中放置的静态资源。
这是一个简单的使用Nginx提供静态资源的案例。你可以根据需要进行更多的配置,例如添加SSL证书、压缩资源、缓存控制等。请参考Nginx的官方文档以获取更多详细信息。
2 反向代理
Nginx是一个流行的Web服务器和反向代理服务器,它可以用于构建高性能的Web应用程序。下面是一个简单的案例,展示了如何使用Nginx作为反向代理服务器。
假设你有一个名为backend的应用程序服务器,它监听在端口8080上,并且你希望使用Nginx作为反向代理来转发客户端请求到该服务器。
-
配置反向代理:在Nginx中,可以使用proxy_pass指令来指定反向代理的目标服务器。打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,并添加以下配置:
在上面的配置中,server_name指令指定了域名,location /指令指定了URL路径匹配规则,proxy_pass指令指定了反向代理的目标服务器地址。proxy_set_header指令用于设置请求头信息,以便后端服务器能够正确识别客户端的请求。 -
重启Nginx:保存并关闭配置文件后,重启Nginx以使更改生效。
-
配置后端服务器:将你的应用程序服务器配置为监听在端口8080上。例如,如果你使用的是Node.js应用程序,你可以使用以下代码创建一个简单的服务器:
-
访问应用程序:现在,你可以通过在浏览器中访问http://example.com来访问你的应用程序。如果一切正常,你应该能够看到来自后端服务器的响应。
这是一个简单的使用Nginx作为反向代理的案例。你可以根据需要进行更多的配置,例如添加SSL证书、负载均衡、缓存控制等。请参考Nginx的官方文档以获取更多详细信息。
3 动静分离
Nginx是一个流行的Web服务器和反向代理服务器,它可以用于实现动静分离,提高Web应用程序的性能。下面是一个简单的案例,展示了如何使用Nginx实现动静分离。
假设你有一个静态资源目录/var/www/html,该目录下存放着一些HTML、CSS、JavaScript等静态文件,并且你希望使用Nginx来处理这些静态文件的请求,同时将动态请求转发给后端的应用程序服务器。
- 配置动静分离:在Nginx中,可以使用location指令来匹配不同的URL路径,并指定相应的处理方式。打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,并添加以下配置:
在上面的配置中,server_name指令指定了域名,location /指令指定了URL路径匹配规则,root指令指定了静态资源的根目录。location /api指令匹配以/api开头的URL路径,并将请求转发给本地端口8080上的应用程序服务器。proxy_pass指令指定了反向代理的目标服务器地址。proxy_set_header指令用于设置请求头信息,以便后端服务器能够正确识别客户端的请求。 - 重启Nginx:保存并关闭配置文件后,重启Nginx以使更改生效。
- 配置后端服务器:将你的应用程序服务器配置为监听在端口8080上。例如,如果你使用的是Node.js应用程序,你可以使用以下代码创建一个简单的服务器:
- 访问应用程序:现在,你可以通过在浏览器中访问http://example.com来访问你的应用程序。如果一切正常,你应该能够看到来自静态资源目录的HTML文件,并且当你访问以/api开头的URL路径时,请求将被转发到后端的应用程序服务器。
这是一个简单的使用Nginx实现动静分离的案例。你可以根据需要进行更多的配置,例如添加SSL证书、负载均衡、缓存控制等。请参考Nginx的官方文档以获取更多详细信息。
4 一个nginx机器、一个服务器集群的配置案例
以下是一个使用Nginx作为反向代理服务器的集群配置案例:
案例概述:
- 一个Nginx机器作为反向代理服务器,负责接收客户端请求并转发到后端服务器集群。
- 一个服务器集群,包含多个应用服务器,提供实际的业务处理能力。
配置步骤:
1、配置Nginx机器:
- 安装Nginx:在Nginx机器上安装Nginx软件。
- 配置反向代理:编辑Nginx的配置文件(通常是nginx.conf),添加反向代理配置。示例配置如下:
http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
}
在上面的配置中,upstream块定义了一个名为backend的上游服务器组,其中列出了后端服务器的地址。server块定义了Nginx监听的端口和域名,location块指定了将请求代理到哪个上游服务器组。
- 保存配置文件并重启Nginx:保存配置文件后,重启Nginx服务以使更改生效。
- 配置服务器集群:
- 安装应用服务器软件:在每个应用服务器上安装所需的业务处理软件。
- 配置业务处理:根据具体的业务需求,配置应用服务器的业务处理能力。
- 配置网络:确保应用服务器可以被Nginx机器正确访问,并且没有网络故障。
完成上述配置后,客户端发送请求到example.com时,Nginx机器会将请求转发到后端服务器集群中的某个应用服务器进行处理,并将响应返回给客户端。通过Nginx的反向代理功能,可以实现负载均衡、故障转移等功能,提高系统的可用性和性能。
5 Nginx负载均衡策略-指定轮询几率
在Nginx中,可以使用weight参数来指定轮询几率。weight参数用于定义每个后端服务器的权重,权重越高的服务器将会收到更多的请求。下面是一个指定轮询几率的案例:
http { upstream backend { server backend1.example.com weight=2; server backend2.example.com weight=3; server backend3.example.com weight=5; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
}
在上面的配置中,我们定义了一个名为backend的上游服务器组,其中包含了三个后端服务器,并分别指定了它们的权重。backend1.example.com的权重为2,backend2.example.com的权重为3,backend3.example.com的权重为5。
当Nginx接收到请求时,它会根据权重值的大小进行轮询。在这个例子中,backend3.example.com的权重最高,因此它将收到最多的请求,其次是backend2.example.com,最后是backend1.example.com。
通过这种方式,您可以根据服务器的性能、负载或其他因素来调整每个服务器的轮询几率,从而实现更灵活的负载均衡策略。
6 Nginx负载均衡策略-ip_hash
在Nginx中,可以使用ip_hash指令来实现基于客户端IP地址的哈希负载均衡。ip_hash指令将根据客户端的IP地址将请求哈希到不同的后端服务器。下面是一个ip_hash负载均衡策略的案例:
http { upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
}
在上面的配置中,我们定义了一个名为backend的上游服务器组,并在该组中应用了ip_hash指令。这意味着Nginx将使用客户端的IP地址作为哈希键,将请求分配到不同的后端服务器。
使用ip_hash负载均衡策略可以确保来自同一客户端的请求始终被发送到同一台后端服务器,这对于保持会话状态或避免重复登录非常有用。然而,需要注意的是,ip_hash指令仅根据客户端的IP地址进行哈希,如果客户端使用代理服务器,则可能导致负载分配不均。
每个请求按访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一服务器进行处理,可以解决session的问题。当后台服务器宕机时,会自动跳转到其它服务器。
相关文章:
探究Nginx应用场景
1 静态资源 Nginx是一个流行的Web服务器和反向代理服务器,它可以用于托管静态资源。下面是一个简单的案例,展示了如何使用Nginx来提供静态资源。 假设你有一个名为example.com的域名,并且你希望使用Nginx来托管位于/var/www/html目录下的静…...
sklearn中的数据集使用
导库 from sklearn.datasets import load_iris 实现 # 加载数据集 iris load_iris() print(f查看数据集:{iris}) print(f查看数据集的特征:{iris.feature_names}) print(f查看数据集的标签:{iris.target_names}) print(f查看数据集的描述…...
LLM在电商推荐系统的探索与实践
本文对LLM推荐的结合范式进行了梳理和讨论,并尝试将LLM涌现的能力迁移应用在推荐系统之中,利用LLM的通用知识来辅助推荐,改善推荐效果和用户体验。 背景 电商推荐系统(Recommend System,RecSys)是一种基于用…...
Linux 文本操作指令
Linux操作系统提供了许多用于处理文本文件的命令和工具。以下是一些常用的Linux文本命令: cat: 用于查看文本文件的内容,也可以用于合并多个文件。 cat 文件名more和less: 用于逐页查看文本文件,特别是对于大型文件。 …...
GIS地图服务数据可视化
GIS地图服务数据可视化 OSM(Open Street Map,开放街道地图)Bing地图(必应地图)Google地图(谷歌地图) 地图服务数据可视化是根据调用的地图服务请求Web服务器端的地图数据,实现地图数…...
java 获取实体类的反射 Field用法(获取对象的字段名和属性值) 包含注解值 - 如何用枚举类映射获取数据库字段名
实体类映射数据库字段的设计思路 初始思路: 使用 java 的反射 Field 通过注解方法获取实体类属性的注解值,但是如果遇到不是标准的数据库映射的注解方法,那么就无法拿到对应的数据库映射字段名,所以这一点被笔者舍弃了。 什么是标准的映射注解方法,即导入方法后带 anno…...
日志平台搭建第六章:logstash通过kafka通道采集日志信息
1.修改文件/opt/app/elk/logstash-7.5.1/config.d/config1.conf,在input下添加kafka采集配置 #192.168.128.130:9103:kafka地址 #topics:主题 kafka {bootstrap_servers > ["192.168.128.130:9103"]group_id > "logstash"topics > [&…...
mysql的索引分类
索引分类 在 MySQL 数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。 分类 含义 特点 关键字 主键 索引 针对于表中主键创建的索引 默认自动创建 , 只能 有一个 PRIMARY 唯一 索引 避免同一个表中某数据列中…...
【校招VIP】java语言考点之并发相关
考点介绍: 并发在操作系统中是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。并发相关问题在校招面试中出现频次很高。 java语言考点之并发相…...
nginx实现路由重定向功能 避免服务器出现 404 Not Found
首先 到服务器上 vue react等项目路由的重定向已解决不了带后缀的访问 这个重定向需要 nginx 来实现 我们先执行 scp -r 用户名 如果没设置过就是root服务器公网地址:/etc/nginx/nginx.conf E:/拷贝地址这里 我将服务器上的nginx配置文件 拷贝到了本地的 E盘下的 拷贝地址目录…...
Flask+pyecharts+SQLAlchemy,统计图的数据存放在mysql中,综合版
ISEE小语 有人问:“世上最廉价的东西是什么?” 在网上看到这样一个回答说: “大概就是付出吧,一贫如洗的真心、一事无成的温柔、一厢情愿的等待。” 回顾上篇 此篇是在【Flask+pyecharts结合,html统计图呈现在前端页面】和【Flask+pyecharts结合,优化前端加导航栏显示】的…...
SQL注入类型判断
SQL注入的类型分为字符型和数字型,以sqli-labs靶场1、2关为例: 第一关 第一关注入一个1’,错误回显出下面内容,其中1’是注入的内容,0,1后面的单引号和最前面的单引号是一对,剩下的两个单引号是一对&#…...
ElasticSearch的安装部署-----图文介绍
文章目录 背景什么是ElasticSearch使用场景 ElasticSearch的在linux环境下的安装部署前期准备分配权限(正式实操)启动ElasticSearch创建用户组创建用户,并设置密码用户添加到elasticsearch用户组指定用户操作目录的一个操作权限切换用户 解压elasticsearch修改es的配…...
Unity粒子系统ParticleSystem各模块及其参数学习
粒子系统控制面板默认有4个模块:Particle System(主模块),Emission(发射模块), Shape(形状模块),Renderer(渲染器模块) 1.Particle …...
vue3实现卡片翻牌
vue3实现塔罗牌翻牌 前言一、操作步骤1.布局2.操作3.样式 总结 前言 最近重刷诡秘之主,感觉里面的塔罗牌挺有意思,于是做了一个简单的塔罗牌翻牌动画(vue3vitets) 一、操作步骤 1.布局 首先我们定义一个整体的塔罗牌盒子&…...
算法训练营day45|动态规划 part07:完全背包 (LeetCode 70. 爬楼梯(进阶)、322. 零钱兑换、279.完全平方数)
文章目录 70. 爬楼梯(进阶)(求排列方法数)思路分析代码实现 322. 零钱兑换(求等于背包重量的最小物品数)思路分析代码实现思考总结 279.完全平方数 (求等于背包重量的最小物品数)思路分析代码实现 70. 爬楼梯(进阶)(求排列方法数) 题目链接🔥 假设你正在爬楼梯。需…...
【大模型】更强的开源可商用的中英文大语言模型baichuan2来了,从零开始搭建
【大模型】更强的开源可商用的中英文大语言模型baichuan2来了,从零开始搭建 Baichuan 2 介绍技术报告github 地址 模型下载开放协议协议 测试评估通用领域测试7B 模型结果13B 模型结果 法律、医疗7B 模型结果13B 模型结果 数学、代码7B 模型结果13B 模型结果 多语言…...
ElasticSearch系列-简介与安装详解
全文检索 讲ElasticSearch之前, 需要先提一下全文检索.全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。 …...
Layui + Flask | 表单组件(组件篇)(07)
http://layui.dev/docs/2.8/form 表单组件 form 是包含输入框、选择框、复选框、开关、单选框等表单项组件的集合,主要用于对表单域进行各类动态化渲染和相关的交互操作。form是 Layui 最常用的组件之一。 表单布局 form 组件自身的普通布局。其要点为: 通过 class="lay…...
【实践篇】Redis最强Java客户端Redisson
文章目录 1. 前言2. Redisson基础概念2.1 数据结构和并发工具2.1.1 对Redis原生数据类型的封装和使用2.1.2 分布式锁实现和应用2.1.3 分布式集合使用方法 2.2 Redisson的高级特性2.2.1 分布式对象实现和使用2.2.2 分布式消息队列实现和使用2.2.3 分布式计数器实现和使用 3. 参考…...
esxi扩容磁盘
esxi扩容磁盘 fdisk -l没用扩容 登录Esxi管理界面扩容磁盘 进入服务器查看 没用变化 (有些可能进去磁盘就是更新,直接就是扩容的,但是没扩容就需要执行下面的命令) [root234-ces /]# fdisk -l Disk /dev/sda: 85.9 GB, 858993…...
核心实验21_BGP高级(了解)(配置略)_ENSP
项目场景: 核心实验21_BGP基础_ENSP 通过bgp实现省市互通。 实搭拓扑图: 具体操作: 其他基础配置略(接口地址,ospf) 1.BGP邻居建立: R1: [R1]bgp 200 [R1-bgp]peer 10.2.2.2 as-number 200 …...
宝塔安装python和openssl
宝塔安装python和openssl OpenSSL Centos7 openssl 升级 1.1.1k.tar.gz centos7系统安装Vicuna(小羊驼)聊天机器人 CentOS中输入yum报错:sudo: unable to execute /bin/yum: No such file or directory opensslrpm安装指南-让你的网站更加…...
TDengine 3.1.1.0 来啦!更新如下
自 3.0 版本发布以来,在研发人员和社区用户的不断努力下,TDengine 做了大量更新,产品稳定性和易用性也在不断提升。近日,TDengine 3.1.1.0 成功发布,本文将向大家简单介绍一下该版本涉及的重大更新。 写在前面 伴随 …...
YSA Toon (Anime/Toon Shader)
这是一个Toon着色器/Cel阴影着色器,用于Unity URP 此着色器的目的是使角色或物体阴影实时看起来尽可能接近真实的动画或卡通效果 可以用于游戏,渲染,插图等 着色器特性,如:面的法线平滑、轮廓修复、先进的边缘照明、镜面照明、完全平滑控制 这个文档包括所有的功能https:/…...
LabVIEW通过IEC61508标准验证ITER联锁系统
LabVIEW通过IEC61508标准验证ITER联锁系统 保护环境要求系统能够保护机器免受工厂系统故障或机器危险操作造成的严重损坏。负责此功能的ITER系统是联锁控制系统(ICS)。该系统通过中央联锁系统(CIS)监督和控制不同的工厂联锁系统&…...
如何处理日期和时间?
处理日期和时间是计算机编程中的常见任务,无论是在C语言还是其他编程语言中。C语言提供了一些库函数来处理日期和时间,主要是通过<time.h>头文件中的函数来完成的。在本文中,我将详细解释如何在C语言中处理日期和时间,包括日…...
【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 TSINGSEE青犀视频的EasyDSS平台具有点播文件分类展示方法…...
论文多级编号-word2010
多级列表-定义新的多级列表 注意1.1中的两个1必须是灰色(如果不是灰色,解决方法放在文本文末了) 如果定义过程中发现1.1中的1不是灰色,如下图,那么需要操作下述步骤 点击文件-选项 取消勾选自动编号列表。确定后关闭文…...
Jetpack Compose基础组件之 — Text
Text的源码参数预览 Composable fun Text(text: String,modifier: Modifier Modifier,color: Color Color.Unspecified,fontSize: TextUnit TextUnit.Unspecified,fontStyle: FontStyle? null,fontWeight: FontWeight? null,fontFamily: FontFamily? null,letterSpac…...
ipv6域名解析 做网站/列表网推广收费标准
某天晚上凌晨突然收到一封国外boss的需求文件过来,附件夹带着一个excel文件,没来得及看密密麻麻的英文邮件内容,怀着忐忑不安的心情打开附件,以为又是一个难搞的复杂需求,结果内容只有一条。关掉附件,常出了…...
设计公司网站案例/厨师培训
视频去重消重去水印去LOGO软件哪里有?什么软件好? 大批量视频采集下载软件哪些好?怎么找到它们? 腾讯视频批量采集下载软件哪个好?怎么找到? 凤凰网视频批量采集下载软件,去重消重去水印 如何大…...
优质网站建设公司哪家好/杭州网站推广大全
头文字D.jpg引言链表还有一种常用的形式,那就是循环链表,看到循环两个字,相比都已经知道他是怎样的链表了吧,是的,他就是一种首尾相连的链表,这样的链表形成了一个环的形状。什么是循环链表?上文…...
广州市住房和城乡建设委员会网站/淘宝搜索关键词查询工具
2015年9月数据库流行榜单最新出炉!与上个月相比,最受欢迎的前10名排名不变。第一梯队依旧是三足继续鼎立:Oracle雄霸榜单,MySQL和SQL Server尾随其后。第二梯队仍是MongoDB为排头兵,稳步攀升。建议以前只专注于RDBMS的…...
网站设计定位/怎么做网站免费的
组件 如图所示: 下载地址:TAB组件 在此基础修改:vue高仿立体卡片效果(第一版) 更新记录: 1.0 修复中间分割线ios端异常,放弃border-image采用after伪元素实现...
做婚纱影楼网站的价格/网络营销策划是什么
技术特征:1.一种组播报文收发方法,其特征在于,应用于组播报文收发系统,所述组播报文收发系统包括网管服务器、第一无管理交换机和/或第二无管理交换机、第一有管理交换机、第二有管理交换机、信息发送端以及信息接收端,…...