Nginx基本使用 反向代理与负载均衡

什么是Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。

其特点是占有内存少,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好,而且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。

Nginx作用

  • 反向代理:为服务器做代理,接收客户端的的请求,并将服务器的响应转发给客户端
  • 负载均衡:将负载合理地分配到各个服务器去处理
  • 动静分离:将网站的动态与静态资源分开(如前后端分离),可以对静态文件做缓存,提高响应速度

使用场景:

  • 一个项目存在于多台服务器,想要实现每一次用户请求都打在不同的服务器上,但又不想让用户感知到访问的是不同服务器

正向/反向代理

正向代理是指客户端通过代理服务器(如VPN)去接收和响应目标服务器的请求,代理的是客户端。用户对国外网站的访问就需要通过代理服务器来转发请求。

在这里插入图片描述

而反向代理就是服务器通过一个代理服务器去接受和返回客户端的请求,因为代理在是服务器端,所以叫反向代理。对于客户端来说,反向代理就相当于目标服务器,只需要将反向代理当作目标服务器一样发送请求就可以了。

在这里插入图片描述

总结:正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器,为服务器收发请求,使真实服务器对客户端不可见。

负载均衡

负载就是工作量(或者流量),将总的流量按照一定策略分配到各个主机上去的过程就是负载均衡。

反向代理实现的是:你访问一台服务器,它会转发给一台别的服务器;而负载均衡实现的是,你访问一台服务器,它会转发给多个服务器

中的一台,所以说负载均衡是基于反向代理的,只不过代理的是一群服务器。

在这里插入图片描述

动静分离

动静分离就是将前端的静态资源(html、css、JavaScript、图片等)与后端分开,或者说静态请求与动态请求分开,也就是实现前后端分离。

本质上就是以Nginx作为前端资源的服务器,后端正常用Tomcat作为服务器。访问前端静态资源时,直接通过Nginx所在服务器的文件系统找,访问后端动态资源时,才是通过tomcat所在服务器对应的接口去访问。

在这里插入图片描述

Nginx基本使用

启动

打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车

在这里插入图片描述

直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

在这里插入图片描述

重载配置

nginx -t # 检查配置文件语法
nginx -s reload # 重新加载

关闭

输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

Nginx配置

在conf文件夹中的nginx.conf是nginx的核心配置文件

注意:修改配置文件后不会立即生效,必须执行nginx -s reload才会生效

在这里插入图片描述

里面主要包括三块,分别是全局配置、事件配置和http配置,可以看到默认配置的nginx监听的端口为80

# 全局配置
#user  nobody;
worker_processes  1;# 事件配置
events {worker_connections  1024;
}# http配置
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# sever配置server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {...}}

Nginx实践

有一个应用,在两个不同的服务器中运行(或者同一台服务器不同端口),先要求使用Niginx做反向代理,使得用户访问本机的80端口时会自动映射到对应的两个主机应用上(反向代理),并且配置主机1的访问频率是主机2的两倍(负载均衡)。

步骤

分别用7090和7091号端口启动一个hello world的应用,访问这里两个url的结果都是得到一个hello world

在这里插入图片描述

1.在http配置内加入myhost的配置

    # 配置myhost,负载均衡(默认是轮询策略)upstream myhost{server 127.0.0.1:7090 weight=2;server 127.0.0.1:7091 weight=1;}

2.再在80端口的sever中配置反向代理(代理上述定义的myhost),只需要添加一行proxy_pass即可

 # sever配置server {listen       80;server_name  localhost;location / {#配置反向代理,转到myhostproxy_pass http://myhost;}}

具体修改如下

在这里插入图片描述

cmd中进入nginx目录,输入nginx -s reload,重新加载配置文件

结果

此时,访问127.0.0.1或者localhost(默认是80端口),就会自动转到127.0.0.1:7090和127.0.0.1:7091了(实现反向代理),且访问两个程序的比例是1:2(实现负载均衡)

在这里插入图片描述

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

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

相关文章

MP2110A Anritsu 安立 采样示波器 眼图设备 简述

MP2110A是一款集成了误码率测试仪(BERT)和采样示波器的一体化测量仪器,主要用于光学模块的误码率(BER)测量、眼图分析等评估操作。它支持从10G到800G的光学模块制造过程中的检测分91522。MP2110A内置4通道采样示波器&a…

MySQL从安装、配置到日常操作和管理的关键步骤

MySQL是一款广泛使用的开源关系型数据库管理系统,用于存储、管理、检索和处理数据。以下是一个详细的MySQL使用教程,包括安装、基本操作、数据管理、权限控制、备份与恢复等方面的内容: 一、MySQL安装 下载: 访问MySQL官方网站&a…

k8s部署jupyterlab,jupyterlab保存不了文件,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

磁盘分区以及MBR与GPT

磁盘分区以及MBR与GPT 磁盘分区的概念MBR(Master Boot Record)与GPT(GUID Partition Table)分区命令LinuxWindows 磁盘分区的概念 磁盘分区是将一个物理硬盘驱动器划分为多个逻辑部分的过程。每个分区可以看作是一个独立的硬盘&a…

ElasticSearch:查询操作合集

先看下我的数据: 1、查询所有文档: GET /cartest/_search或者 GET /cartest/_search {"query": {"match_all": {}} }2、匹配查询: match匹配类型查询,会把查询条件进行分词,然后进行查询&…

【树莓派】如何用电脑连接树莓派的远程桌面,灰屏解决

要使用VNC桌面连接到树莓派,你需要确保已经安装并启动了VNC服务器。以下是连接到树莓派的步骤: 在树莓派上启动VNC服务器: 打开终端或SSH连接到你的树莓派。输入以下命令以安装RealVNC的VNC服务器:sudo apt update sudo apt insta…

PLSQL数据库

目录 什么是PLSQL数据库 PL数据库的实现方法 PL数据库的基本语法 1.作用 2.语法 3.赋值输出 4.引用 5.异常处理 6.if 判断 7.loop循环 8.while循环 9.for循环 10.游标 11.参数游标 12.索引 13.分区表 什么是PLSQL数据库 PL/SQL(Procedure Language/…

微前端通信机制及其实现

微前端通信机制是指在微前端架构中,不同的微应用之间进行通信的方式和机制。微前端通信机制的实现可以通过以下几种方式: 事件总线(Event Bus):微前端架构中的主应用可以创建一个事件总线,用于发布和订阅事…

【C++航海王:追寻罗杰的编程之路】C++11(二)

目录 C11(上) 1 -> STL中的一些变化 2 -> 右值引用和移动语义 2.1 -> 左值引用和右值引用 2.2 -> 左值引用与右值引用比较 2.3 -> 右值引用使用场景与意义 2.4 -> 右值引用引用左值及其更深入的使用场景分析 2.5 -> 完美转发 C11(上) 1 -> STL…

为什么要建设数字化校园?

数字化校园的建设能够使用户能够随时随地的在有互联网的地方获取到校园的信息,而且由于这些信息都是有校园的管理部门发布的,所以这样就能保证信息的权威性。数字化校园平台还能让学校内部建立起相对独立的网络体系,能有效的消除“信息化孤岛…

Leetcode 3121. Count the Number of Special Characters II

Leetcode 3121. Count the Number of Special Characters II 1. 解题思路2. 代码实现 题目链接:3121. Count the Number of Special Characters II 1. 解题思路 这一题算是一个分类讨论的问题吧,我们只需要对每一个字符考察其前序当中所有出现过的字符…

Qt实现XYModem协议(四)

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

Leetcode 4.21

1.罗马数字转整数 用unordered_map去存罗马数字对应的数值&#xff0c;分情况讨论&#xff0c;把所有情况都列出来即可 class Solution { public:unordered_map<char, int> mp {{I, 1},{V, 5},{X, 10},{L, 50},{C, 100},{D, 500},{M, 1000}};int romanToInt(string s)…

Kubernetes TDengine 系列|安装 TDengine 的 Grafana 插件|Grafana监控TDengine数据

为了让Grafana 能够监控到TDengine 数据&#xff0c;快速集成搭建数据监测报警系统&#xff0c;所以直接安装TDengine 插件。 目录 一、安装 TDengine 的 Grafana 插件1、下载TDengine grafana插件2、解压到指定目录3、配置未签名插件 二、配置数据源&#xff0c;简单查询TDen…

【已解决】VMware虚拟机中出现无法将“iso文件”当做CD-ROM映像进行连接:找不到该文件的错误

报错 在VMware上运行虚拟机时报错&#xff1a;VMware虚拟机中出现无法将“iso文件”当做CD-ROM映像进行连接&#xff1a;找不到该文件的错误 原因分析 找不到这个iso文件了&#xff0c;检查文件位置 解决方案 找到iso文件&#xff0c;然后在VM中编辑虚拟机中这个文件的位置…

算法:堆(优先队列)

堆&#xff08;优先队列&#xff09;分为最大堆和最小堆。 python实现 class HEAPQ:# 最小堆def __init__(self, l):self.l lself.build()def build(self):n len(self.l)end n // 2for i in range(end, -1, -1):self.update(i)def update(self, i):l self.ln len(l)idx …

前端点击地图上的位置获取当前经纬度

地图封装组件 <template><div id"container"></div> </template> <script>import AMapLoader from amap/amap-jsapi-loader;export default {name: "Mapview",props:{mapinfo:{type:Object,default:function(){return {}}}…

AI-数学-高中-45函数单调性与导数

原作者视频&#xff1a;【导数】【一数辞典】5函数单调性与导数&#xff08;重要&#xff09;_哔哩哔哩_bilibili 导数最重要作用&#xff1a;判断函数单调性。 示例&#xff1a;

新风口下的必应bing国内广告投放该怎么做?

必应Bing作为全球搜索引擎市场的重要参与者&#xff0c;正逐渐显现出其在国内市场的独特价值和潜力。随着互联网生态的多元化发展&#xff0c;必应Bing凭借其高质量用户群和精准投放能力&#xff0c;成为了企业寻求新增长点的新风口。 一、洞察先机&#xff0c;精准定位市场 …

运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

简述 一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预…