nginx 反向代理 负载均衡 动静分离

一样东西的诞生通常都是为了解决某些问题,对于 Nginx 而言,也是如此。

比如,你出于无聊写了一个小网站,部署到 tomcat 之后可以正常访问

但是后来,你的这个小网站因为内容很诱人逐步的火了,用户越来越多,并发量也慢慢增大,此时一台服务器已经满足不了网站的需求了。

你不能眼睁睁的看着你的“孩子”被压垮呀,于是乎,一咬牙又花钱加了几台服务器。

一、什么是Nginx

Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,在微服务架构中,Nginx作为客户端请求的第一层中间件,通常将请求转发代理给网关。一般Nginx运用的主要场景有反向代理、负载均衡、动静分离等,在微服务架构如下:
在这里插入图片描述

其特点是占用内存少,并发能力强,运行还很文档,几乎可以做到7x24h不间断运行,即使运行数个月也不需要重启。而且,还能在服务不间断的情况下进行软件版本的升级。

Nginx代码完全用C语言编写,官方数据测试表明能够支持高达50000个并发连接数的响应。

反向代理

在这里插入图片描述
为了安全起见,一般我们不会将应用服务器内网地址暴露给外界,此时就让Nginx作为代理来访问内网地址。而Nginx的IP地址可以作为公网IP暴露给外界使用,这样就屏蔽了内网服务器信息。例如:
在这里插入图片描述

正向代理:访问www.google.com 需要正向代理,访问的目的地不发生变化 

  • 首先在本机修改hosts文件
    路径为:C:\Windows\System32\drivers\etc\hosts
    添加以下内容:
# 192.168.152.160是远程Nginx服务器地址
192.168.152.160    gulimall.com

当客户端输入 gulimall.com时,通过本地域名映射规则,解析出Nginx服务器地址

  • 设置Nginx反向代理
    修改nginx.conf的server段
 listen 80;server_name  gulimall.com;location / { #代理给内网服务地址   proxy_pass http://172.20.10.3:8000; #商品服务的地址}

这样,我们就实现了Nginx的反向代理,是不是很简单呢?

三、负载均衡

现在有好几台服务器了,也有代理服务器了。但是因为你预算有限,后加的几台服务器配置有高有底,这时候如果能让配置高的服务器多承担点压力,让配置低的少承担点压力就好了。

Nginx的负载均衡就可以完成这样的需求。

 在 conf.d 目录下创建 gulimall.conf       ---  操作 cp defaut.conf gulimall.conf

  gulimall.conf 配置文件如下

 listen 80;server_name  gulimall.com;location / { #代理给内网服务地址   proxy_pass http://gulimall; #商品服务的地址}

  nginx.conf 配置文件如下  选择的默认负载均衡:轮询

upstream gulimall{server 172.20.10.3:88;server 172.20.10.3:89;
}

 网关的配置文件 application.yml文件如下

spring:application:name: gulimall-gatewaycloud:gateway:routes:- id: gulimall_host_routeuri: lb://gulimall-productpredicates:- Host=gulimall.com,item.gulimall.com

四、动静分离

你的小网站里有些请求是需要后台处理的,但是有些请求是不需要的,比如 css、html、jpg、js等文件,这些统称为静态文件

Nginx可以根据一定规则把不变的资源和经常变的资源区分开,做好了拆分之后,我们就可以根据静态资源的特点将其做缓存操作,从而提高资源响应的速度。

  gulimall.conf 配置文件如下

location /static/ {root /usr/share/nginx/html;
}

把对应的静态文件放在/usr/share/nginx/html/即可

OK,通过动静分离,你的小网站响应速度也上去了,用户体验更好了,你终于送了口气。

--不要用肉体的勤奋,去掩盖思考的懒惰--

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

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

相关文章

深度学习笔记_1、定义神经网络

1、使用了PyTorch的nn.Module类来定义神经网络模型;使用nn.Linear来创建全连接层。(CPU) import torch.nn as nn import torch.nn.functional as F from torchsummary import summary# 定义神经网络模型 class Net(nn.Module):def __init__(self):super(Net, self).__init__()…

赋能工业数字化转型|辽宁七彩赛通受邀出席辽宁省工业互联网+安全可控先进制造业数字服务产业峰会

2023年9月25日下午,由软通动力信息技术(集团)股份有限公司主办的“工业互联网安全可控先进制造业数字服务产业峰会”在辽宁沈阳顺利举办。省市区各级政府、科研院所领导、技术专家、企业高管以及生态合作伙伴代表等齐聚一堂,共同探…

【JVM】第五篇 垃圾收集器G1和ZGC详解

导航 一. G1垃圾收集算法详解1. 大对象Humongous说明2. G1收集器执行一次GC运行的过程步骤3. G1垃圾收集分类4. G1垃圾收集器参数设置5. G1垃圾收集器的优化建议6. 适合使用G1垃圾收集器的场景?二. ZGC垃圾收集器详解1. NUMA与UMA2. 颜色指针3. ZGC的运作过程4. ZGC垃圾收集器…

【ShaderLab罪恶装备卡通角色_二次元风格_“Sol Badguy“_角色渲染(第二篇)】

罪恶装备背德之炎卡通角色_二次元风格_Unity 角色渲染 角色初始效果:基础渲染SimpleBas 资源分析模型顶点颜色: 贴图资源SOL_base_基础色块效果:其中SOL_base_A通道的效果: SOL_ilm:如下SOL_ilm模型上区域分布- 左到右…

python-切换镜像源和使用PyCharm进行第三方开源包安装

文章目录 前言python-切换镜像源和使用PyCharm进行第三方开源包安装1. 切换镜像源2. 使用PyCharm进行第三方开源包安装 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每…

python爬取百度图片

1.查询数据 打开网页。 https://cn.bing.com/images/search?q%E7%99%BE%E5%BA%A6%E5%9B%BE%E7%89%87&formHDRSC2&first1&cw1585&ch924 我们右键查看网页源代码,发现能找到我们需要的img衔接,但是这是一个动态网页。我们每次向下滑动网页,会发现图…

RHEL8.0安装+基础命令练习+discuz(lamp)论坛搭建

上课练习环境: RHEL8.0系统镜像下载: 链接1:https://pan.baidu.com/s/1wX2j-aTO1VRcHQYpCDYnEg 提取码:6buv 链接2:https://ws28.cn/f/32i4oq8p5r1 (下载完2个文件后只需要解压001,推荐压缩…

Ubuntu服务器安全性提升:修改SSH默认端口号

在Ubuntu服务器上,SSH(Secure Shell)是一种至关重要的远程连接工具。它提供了一种安全的方式来远程连接和管理计算机系统,通过加密通信来确保数据的保密性和完整性。SSH协议广泛用于计算机网络中,用于远程管理、文件传…

打包python模块代码到pypi

python中,我们会在自己业务中,重复性的使用某些功能。我们可以把这些公用的模块,打包上传,然后给需要的人使用,pypi给我们提供了这个机会 本期目录 一、准备工作 二、编写文件 三、上传下载 一、准备工作 1、需要git…

妙不可言的Python之旅----(一)

初识Python python的起源 1989年,为了打发圣诞节假期,Gudio van Rossum吉多 范罗苏姆(龟叔)决心开发一个新的解释程序(Python雏形) 1991年,第一个Python解释器诞生 Python这个名字&#xff…

ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中,opencv_contrib解压后的多个文件夹复制到opencv内、合并 2.安装 参考博文: https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/87197806 其中 (1)cmake前…

Redis与分布式-哨兵模式

接上文 Redis与分布式-主从复制 1.哨兵模式 启动一个哨兵,只需要修改配置文件即可, sentinel monitor lbwnb 1247.0.0.1 6001 1先将所有服务关闭,然后修改配置文件,redis Master,redis Slave,redis Slave…

基于大语言模型扬长避短架构服务

秘诀: 扬泛化之长, 避时延之短

最新AI智能创作系统ChatGPT商业源码+详细图文搭建部署教程+AI绘画系统

一、AI系统介绍 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&am…

Python学习之索引与切片

Python学习之索引与切片 s “0abcdefghijklmnopqrstuvwxyz”,第一个元素‘0’,索引号为0,最后一个元素‘z’,索引号为26 1. s[0]获取索引号为0的元素 2. s[1:3]获取索引号为1的元素,直到但不包括索引号为3的元素。即…

西门子S7-1200使用LRCF通信库与安川机器人进行EthernetIP通信的具体方法示例

西门子S7-1200使用LRCF通信库与安川机器人进行EthernetIP通信的具体方法示例 准备条件: PLC:S7-1200 1214C DC/DC/DC 系统版本4.5及以上。 机器人控制柜:安川YRC1000。 软件:TIA V17 PLC做主站,机器人做从站。 具体方法可参考以下内容: 使用的库文件为西门子 1200系列…

源码编译安装systemtap

目录 编译环境 编译步骤 编译环境 阿里云ubuntu20.04 编译步骤 1 先安装elfutils,参见我的前一篇博客 源码编译elfutils_金色熊族的博客-CSDN博客 2 下载systemtap源码 3 解压 解压后的文件夹与elfutils的文件夹应该是平行的,如下图&#xff1a…

网页一直跳转到国家反诈中心页面

很明显,我进入的是vscode的官方下载地址。 但是一直会出现反诈中心的拦截 我们需要在控制面板中,找到网络, 将Internet 协议版本 4 (TCP/IPv4)的属性改成 使用下面的DNS 服务地址(E):8.8.8.8 这样就可以正常访问相关的页面了

ElementPlus

1.国际化--中文 import ElementPlus from element-plus import zhCn from element-plus/dist/locale/zh-cn.mjsapp.use(ElementPlus, {locale: zhCn, }) 2.排序

Redis各数据类型特定的命令和用法 1.0版本

目录 一、Sring数据类型1.1 概述1.2 set/get/append/strlen命令1.3 incr/decr/incrby/decrby 命令1.4 getset命令1.5 setex命令1.6 setnx命令1.7 mset/mget/msetnx命令 二、List数据类型2.1 概述2.2 lpush/lpushx/lrange命令2.3 lpop/llen命令2.4 lrem/lset/lindex/ltrim命令2.…