nginx入门,部署静态资源,反向代理,负载均衡使用
Nginx在linux上部署静态资源
概念介绍
Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中.
server {listen 80; #监听端口 server_name localhost; #服务器名称location / { #匹配客户端请求urlroot html; #指定静态资源根目录 其中html是文件夹的名字index index.html; #指定默认首页}
}
案例演示(我是用docker安装的Nginx)
编写一个DemoNginx.html文件,将这个文件部署到nginx中,然后通过nginx访问html静态资源。
编写的html文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>DemoNginx</title>
</head>
<body>
<h1> nginx部署静态资源</h1>
</body>
</html>
1、将静态资源复制到 nginx安装目录的html目录中(此目录被我挂载到了宿主机的web目录上)
2. 更新配置文件
这段配置的意思是:当访问Nginx服务器的根路径 / 时,Nginx会查找并返回 /usr/share/nginx/html 目录下的
DemoNginx.html 文件。如果该文件不存在,将返回一个 404 错误。
3、浏览器通过 ip访问(80端口可以不写)
Nginx反向代理入门(本机)
引入:
正向代理–代理的是用户–服务器不知道用户是谁
正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。(科学上网就是这个原理)
反向代理----代理的是服务器端,用户不知道是哪台服务器提供的服务。
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,对于用户来说,访问反向代理服务器是完全无感知的。
入门使用nginx配置反向代理(为了方便在本机演示 MAC系统)
1、 修改配置文件 nginx.conf
server {listen 88;server_name localhost;location / {proxy_pass http://localhost:10100;} }
listen 88; 表示这个 server 区块监听 本机的 88 端口。所以你访问http://localhost:88 的时候,就会进入这个服务。 server_name localhost;表示这个服务匹配的域名是 localhost。 在本地开发环境中一般是默认这样写的(正式部署时可以改成你自己的域名)
2、检查配置文件,并重新加载
nginx -t # 检查配置文件是否正确 nginx -s reload # 重新加载配置文件
3 、进行访问测试
负载均衡
概念介绍
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。
**应用集群:**将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
**负载均衡器:**将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
此处的负载均衡器,我们将会使用Nginx来实现,而Nginx的负载均衡是基于反向代理的,只不过此时所代理的服务器不是一台,而是多台。
案例演示
1、启动3个服务相同但是端口不同的服务
*🔗不会启动相同的服务,端口不同见教程
里面提供一个接口
2、在nginx中配置负载均衡
打开nginx的配置文件nginx.conf并增加如下配置:
upstream targetsever{server localhost:10100;server localhost:10101;server localhost:10102;}server {listen 88;server_name localhost;location / {proxy_pass http://targetsever;}}
3、检查配置文件,并重新加载
nginx.exe -t # 检查配置文件是否正确
nginx.exe -s reload # 重新加载配置文件 s是signal的缩写
4、测试时,我们直接访问nginx的88端口此时nginx会根据负载均衡策略,将请求转发到后面的服务器。
我在浏览器中访问了六次nginx的88端口, 可以发现默认的策略是轮询, 2次一轮
负载均衡算法
在nginx中提供了很多的负载均衡算法,常见的负载均衡算法如下所示:
名称 | 说明 | 特点 |
---|---|---|
round robin | 轮询方式 | 默认的负载均衡算法,按照请求的顺序依次分配给后端服务器。 |
random | 随机 | 随机选择一个后端服务器来处理请求 |
url_hash | 依据url分配方式 | 根据客户端请求url的hash值,来分发请求, 同一个url请求, 会发转发到同一个服务器上 |
ip_hash | 依据ip分配方式 | 根据客户端请求的IP地址计算hash值, 根据hash值来分发请求, 同一个IP发起的请求, 会发转发到同一个服务器上 |
weight | 权重方式 | 根据权重分发请求,权重大的分配到请求的概率大 |
least_conn | 依据最少连接方式 | 哪个服务器当前处理的连接少, 请求优先转发到这台服务器 |
场景对比
random算法
upstream targetserver {random;server ip:端口;server ip:端口;
}
url_hash算法
upstream targetserver {hash $request_uri;server ip:端口;server ip:端口;
}
ip_hash算法
upstream targetserver {ip_hash;server ip:端口;server ip:端口;
}
weight算法
upstream targetserver {server ip:端口 weight=5;server ip:端口 weight=1;
}
least_conn算法
upstream targetserver {least_conn;server ip:端口;server ip:端口;
}
相关文章:
nginx入门,部署静态资源,反向代理,负载均衡使用
Nginx在linux上部署静态资源 概念介绍 Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。 相对于Tomcat,Nginx处理…...
微信小程序中使用ECharts 并且动态设置数据
项目下载地址 GitHub 地址 https://github.com/ecomfe/echarts-for-weixin 将当前文件夹里的内容拷贝到项目中 目录: json: {"usingComponents": {"ec-canvas": "../components/ec-canvas/ec-canvas"} }wxml: <ec…...
【愚公系列】《高效使用DeepSeek》064-跨文化谈判
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
云原生环境Jvm内存占用持续高位问题排查
生产内存占用过高问题排查 1、问题描述 一个tomcat应用,部署在云原生集群上,云原生监控显示内存占用率持续偏高,最大占用率、平均占用率都在90%多,但是倒没有OOM什么的。 2、问题复现 凭借对此应用的了解,很快就在测…...
linux下io操作详细解析
在 Linux 系统下,IO(输入/输出)操作是程序与外部设备(如文件、网络等)交互的重要方式。Linux 提供了丰富的系统调用和库函数来支持各种 IO 操作。以下是对 Linux 下 IO 操作的详细解析,包括文件 IO、网络 I…...
【在校课堂笔记】Python 第 9 节课 总结
- 第 91 篇 - Date: 2025 - 04 - 10 Author: 郑龙浩/仟墨 【Python 在校课堂笔记】 文章目录 南山-第 9 节课字符串的各种操作一 string二 string 的索引1 索引介绍2 示例 - 索引使用 三 切片1 **结构**2 示例 四 回文数 – 切片的应用五 对手机号进行脱敏处理六 注意七 读取字…...
AcWing 6099. 座位
原题目链接 问题描述 有 n 头奶牛(n ≥ 5),编号为 1 ∼ n,按照某种顺序围着一张圆桌坐成一圈。 奶牛之间存在如下的朋友关系: 如果两头奶牛相邻,则它们是朋友;如果两头奶牛之间只隔着一头奶…...
MySQL SQL Mode
SQL Mode 是 MySQL 中一个重要的系统变量,它决定了 MySQL 应遵循的 SQL 语法规则和数据验证规则。 什么是 SQL Mode SQL Mode 定义了 MySQL 应该支持的 SQL 语法以及执行数据验证的方式。通过设置不同的 SQL Mode,可以让 MySQL 在不同程度上兼容其他数据…...
linux不同用户共享同一anaconda
这里写目录标题 1、anaconda安装2、所有账号可以访问conda 按一下步骤顺序执行,可使linux上不同权限隔离的用户可以同时访问anaconda。 1、anaconda安装 step1:anaconda是通过root账号安装在某个自定义目录下(如:/data/software/…...
Langflow 远程命令执行漏洞复现(CVE-2025-3248)(附脚本)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前言…...
如何在 Excel 中处理并拆分你提供的这种混合单位的库存数据。
使用 Power Query (获取与转换数据) - 最推荐 这是处理这类复杂、不规范数据的最强大、最灵活的方法,尤其适合数据量大或需要重复处理的情况。 加载数据到 Power Query: 选中你的数据区域。 在 Excel 菜单栏点击 数据 选项卡。 在 获取和转换数据 功能…...
OpenHarmony荷兰研习会回顾 | 仓颉语言赋能原生应用开发实践
近日,由全球顶级学术峰会EuroSys/ASPLOS和OpenHarmony社区在荷兰鹿特丹合办的操作系统深度研习会圆满收官,本次研习会以"架构探秘-开发实践-创新实验"三位一体的进阶模式,为全球开发者构建了沉浸式技术探索平台。其中,由…...
广州华锐视点考试考核系统:引领智能考核新时代
在当今数字化飞速发展的时代,考试考核作为教育与培训成果检验的重要环节,也在不断寻求创新与突破。广州华锐视点凭借其先进的技术实力,打造出了一套功能强大、高效便捷的考试考核系统,为各类教育机构、企业培训等提供了全面且优质…...
Harmony鸿蒙应用开发-录音保存并播放音频
功能介绍: 录音并保存为m4a格式的音频,然后播放该音频,参考文档使用AVRecorder开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:ohos.multimedia.media (媒体服务)。 知识点: 熟悉使用AVRecorder…...
室分系统(室内分布系统)详解
室分系统(室内分布系统,Indoor Distribution System)是用于解决建筑物内部信号弱、覆盖差、容量不足的专用通信网络,广泛应用于商场、写字楼、地铁、机场等场景。 1. 室分系统的作用 解决信号覆盖问题:消除室内盲区&am…...
基于 Qt4 的图片处理工具开发(二):增加对比度调节、界面布局优化、多线程操作
废话不多说,先来看一下最终的界面效果 一、引言 在上一篇博客中,我们完成了图片处理工具的基础框架,实现了拖拽加载、亮度调节和角度旋转功能。本文将聚焦界面布局重构、对比度调节功能扩展以及多线程性能优化,进一步提升工具的实…...
禁止页面滚动的方法-微信小程序
在微信小程序中,有几种方法可以禁止页面滚动: 一、通过页面配置禁止滚动 在页面的JSON配置文件中设置,此方法完全禁止页面的滚动行为: {"disableScroll": true }二、通过 CSS 样式禁止滚动 在页面的WXSS文件中添加&…...
基于landsat与Modis影像的遥感技术的生态环境质量评价
本次将结合ArcGIS与ENVI,发布 landsat与Modis影像的遥感技术的生态环境质量评价技术专题,专题课程学习! 在反映生态质量的诸多自然因素中,绿度、湿度、热度、干度可谓是与人类生存息息相关的4个重要指标,也是人类直观…...
蓝桥杯刷题--宝石组合
在一个神秘的森林里,住着一个小精灵名叫小蓝。有一天,他偶然发现了一个隐藏在树洞里的宝藏,里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状,但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝石都有一个…...
记录一下学习docker的命令(不断补充中)
#2025-04-10,22:12############### 在wsl2中安装了ubuntu24.04.1后有部署了docker, 如果没有启动docker可以通过下列命令启动docker: sudo systemctl start docker 执行下列命令可以看到docker状态,并不占用控制台的命令: su…...
沃伦森电机状态传感器RS-MTS01:智能运维的解决方案
行业工况背景 一、方案背景 在现代工业生产中,电机发挥着至关重要的作用,其运行状况直接关联到生产效率、产品质量以及成本控制。传统的电机维护主要依赖于定期的巡检和事后维修,这种方式难以提前发现潜在的故障隐患,容易导致意外…...
设计模式:单例模式
复习一下: 单例模式(Singleton Pattern) 原理: 单例模式确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。它通过将类的构造函数设为私有,防止外部代码直接实例化该类。同时,提供…...
电商素材革命:影刀RPA魔法指令3.0驱动批量去水印,实现秒级素材净化
本文 去除水印实操视频展示电商图片水印处理的困境影刀 RPA 魔法指令 3.0 强势登场利用魔法指令3.0两步实现去除水印操作关于影刀RPA 去除水印实操视频展示 我们这里选择了4张小红书里面比较帅气的图片,但凡用过小红书的都知道,小红书右下角是会有小…...
解析 WebSocket 协议的基本原理
随着互联网的快速发展,Web 应用对实时通信的需求越来越高。传统的 HTTP 协议无法满足实时性的要求,而 WebSocket 协议则应运而生。WebSocket 是一种新型的协议,允许在一个单独的持久连接上进行全双工的通信,提供了更高效、实时的数…...
学生管理系统(Python)
运行结果: 源代码: """ 项目:类似于学生管理系统---增删改查 """ #封装一个学生类 import random class Student: def __init__(self,stuid,name,score): self.stuid stuid self.name name self.score …...
Java抽象类:深入理解与应用
一、引言 在Java的面向对象编程中,抽象类(Abstract Class)是一个非常重要的概念。它允许我们定义一个类,该类中包含一些抽象方法和非抽象方法,但自己不能被实例化。抽象类主要用于创建类的层次结构,并为子…...
下垂控制的定义与应用解析
下垂控制(Droop Control)是一种广泛应用于微电网、逆变器及分布式电源系统的控制策略,其核心思想是通过模拟传统同步发电机的下垂特性,实现电力系统中电压、频率的稳定以及功率的合理分配。以下是其关键解释及参考依据:…...
oracle 并行度(Parallel Degree)
在Oracle数据库中,并行度(Parallel Degree) 是用于控制并行处理任务的关键配置,旨在通过多进程协作加速大规模数据处 一、并行度的核心概念 并行度(DOP, Degree of Parallelism) 表示一个操作同时使用的并…...
轻量级碎片化笔记memos本地NAS部署与跨平台跨网络同步笔记实战
文章目录 前言1. 使用Docker部署memos2. 注册账号与简单操作演示3. 安装cpolar内网穿透4. 创建公网地址5. 创建固定公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 前言…...
心有猛虎,细嗅蔷薇
2025年4月10日,13~28℃,还好 待办: 融智云考平台《物理》《物理2》《地理》《地理1》重修试卷 冶金《物理》课程标准 教学技能大赛PPT教案 遇见:网友过得挺好的。 感受:和网友说话还是不错的。 反思:无。 …...
借助DeepSeek开启学术写作高效通道
摘要 在学术研究领域,撰写高质量论文是研究者成果展示与学术交流的关键环节。然而,传统论文写作过程复杂,常使研究者面临诸多挑战。随着人工智能技术的发展,DeepSeek等工具为论文写作带来新契机。本文深入剖析利用DeepSeek进行论文…...
interrupt子系统中的数据结构
我们接着上一篇,开始真正的interrupt子系统: 现在有一个共享的中断,网卡跟开关共享同一个gpio中断,然后当触发中断的时候,GIC会发信号给CPU,告诉他已经发生了中断了,然后CPU会去读取GIC里面的寄…...
本地浏览器运行服务器jupyter文件
之前不知道要设置密码 一直登不上 远程linux服务器中安装jupyter通过本地浏览器访问使用_服务器jupyter 本地浏览器访问-CSDN博客...
P1331 洛谷 海战
题目描述 思路 这个题需要读懂题意,即“什么样的形式表示两只船相撞?” ----> 上下相邻或左右相邻 如果图是不和法的,一定存在如下结构: # # . # 或 # # # . 或 # . # # 或 . # # #即四个格子里有三个#,一个"…...
如何开发iOS辅助工具?iOS按键精灵帮你实现
强大的辅助工具可以支持自动化操作,轻松实现一键点击、滑动、输入等操作,无论是游戏挂机、日常任务还是批量处理,都能高效完成。 在按键精灵中针对新手用户和资深开发作者都有路径实现游戏的任务点击。 新手用户推荐使用录制功能以及连点器…...
数据可视化 —— 柱形图应用(大全)
一、案例一:单柱形图 1.导入库 import matplotlib.pyplot as plt import pandas as pd import numpy as np 2.给窗口名称和画布大小 plt.figure(num单柱形图, figsize(6, 4), facecolorw) 3.定义x、y轴的数据 # range(0-4) x np.arange(5) # 创建数组 y1 np.a…...
NLP高频面试题(三十九)——什么是大模型的涌现能力?
在人工智能领域,随着模型规模的扩大,研究人员观察到大型语言模型会展现出一些在小型模型中未曾出现的全新能力,这种现象被称为涌现能力。这些能力并非通过特定编程或训练目标直接获得,而是在模型参数和训练数据达到一定规模后自发出现的。 为什么会产生涌现能力? 涌现能…...
课程发布|ROS+PX4固定翼无人机仿真开发课程
课程链接(限时优惠): ROSPX4固定翼无人机仿真开发课程https://www.bilibili.com/cheese/play/ss131501135...
使用 VcXsrv 在 Windows 10 上运行 Ubuntu 图形界面
VcXsrv 是一款用于 Windows 的开源 X 服务器,它允许在 Windows 系统上显示 Linux 的图形应用程序。当在 Windows 10 上安装并正确配置 VcXsrv 后,通过设置 WSL2 中的DISPLAY环境变量,使其指向运行 VcXsrv 的 Windows 主机的 IP 地址ÿ…...
Java中的参数是值传递还是引用传递?
在java中, 参数传递只有值传递 ,不论是基本类型还是引用类型。 其中的区别在于: 基本数据类型(如byte,short,int等):传递的参数是值的副本,即基本类型的数值本身。因此在方法中&am…...
SD教程|AI绘画软件Stable Diffusion的Lora模型详解与使用教程
一、引言 在[AI绘画 领域,StableDiffusion作为一种强大的文本到图像的生成模型,已经吸引了众多艺术家和爱好者的关注。而Lora(Low-RankAdaptation)模型作为StableDiffusion的一个重要扩展,进一步提升了模型的微调效率…...
矢量网络分析仪测试S参数注意事项
正式测试S参数之前一定要先校准 测量1个端口时,校准步骤如下: 开路(Open); 短路(Short); 负载(Load)。 测试2个端口时,校准步骤如下: …...
模拟-与-现实协同训练:基于视觉机器人操控的简单方法
25年3月来自 UT Austin、Nvidia、UC Berkeley 和纽约大学的论文“Sim-and-Real Co-Training: A Simple Recipe for Vision-Based Robotic Manipulation”。 大型现实世界机器人数据集在训练通才机器人模型方面拥有巨大潜力,但扩展现实世界人类数据收集既耗时又耗资…...
期权与期货的在险价值
在险价值(Value at Risk,VaR) 在险价值(Value at Risk,VaR)是指在一定概率水平 α % \alpha\% α%(置信水平)下,某金融资产或资产组合的价值在未来特定时期(…...
消防设施操作员证书用途有哪些
消防设施操作员证书是国家职业资格证书之一,持有该证书表明具备从事消防设施操作、监控、维护等工作的专业资格。其具体用途和重要性如下: 一、主要用途 就业准入资格 根据《消防法》及相关规定,从事消防控制室值班、消防设施操作与维护等…...
【C++ 内存管理】静态分配和动态分配
文章目录 1.静态分配2.动态分配3.对静态分配和动态分配理解4.析构函数调用顺序5.new[ ] 为什么会多申请内存呢? 1.静态分配 定义: 在编译阶段确定内存大小和生命周期,由编译器自动分配和释放。 特点: ①分配时机:程序…...
基于autokeras的简单天气预报例子和运行输出
import numpy as np from autokeras import StructuredDataClassifier from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # 模拟数据 np.random.seed(0) n_samples 1000 X np.random.rand(n_samples, 3…...
云服务器的入门了解
首先,用户可能对云计算和云服务器的基本概念不太清楚,需要先做一个简单易懂的定义,避免使用太多技术术语。接下来,要说明云服务器和传统物理服务器的区别,强调云服务器的优势,比如弹性扩展、按需付费等。 然…...
Navicat连接远程PostGreSQL失败
问题描述 使用本地Navicat连接Windows远程服务器上部署的PostGreSQL数据库时,出现以下错误: 解决方案 出现以上报错信息,是因为PostGreSQL数据库服务尚未设置允许客户端建立远程连接。可做如下配置, 1. 找到PostGreSQL数据库安装目录下的data子文件夹,重点关注:postgres…...
经济金融最优化:从理论到MATLAB实践——最大利润问题全解析
内容摘要 本文聚焦经济金融领域的最大利润问题,深入探讨不考虑销售影响和考虑销售影响两种情形下的利润最大化模型柯布 - 道格拉斯生产函数等理论构建与求解。 关键词:经济金融;最大利润问题;柯布-道格拉斯生产函数 1. 引言 在…...