当前位置: 首页 > ds >正文

nginx入门需知(含安装教程)

目录

为什么要学习nginx

nginx的含义

反向代理

负载均衡

如何下载nginx


为什么要学习nginx

场景:在之前的学习过程中,我们启动一个项目,往往是把这个项目部署到tomcat服务器中。

举一个简单的例子:

你现在有 商品模块,订单模块,支付模块,用户模块。当大量用户同时对某商品下单时,单个 Tomcat 服务器部署的订单模块会因并发量过高出现响应缓慢、甚至崩溃的问题。因此,我们需要通过部署多台 Tomcat 服务器集群来分担订单模块的压力。

但有一些问题:

1 访问路径不统一:

  • 不同的服务器对应不同的端口号,我每次下单的访问路径都不同。

2 Session 不共享:

  • 有可能 这些服务器 在不同的城市,比如说 小明在A城市下单,但未付款,在B城市下单后,发现 ,待付款的订单不见了【不同tomcat服务器中session 不具备共享: Session 的存储特性(单服务器内存)】。

3 服务器性能不均:

  • 假设 某台服务器,性能下降,这时候 用户访问量激增,这时候应该怎么办,怎么将用户的访问转发到性能高的服务器上

大家,可以先看,我画的这幅图,去理解


基于以上问题,所有才使用 nginx

nginx的含义

nginx 是一个 高性能,高并发的http服务和反向代理服务器。具备反向代理和负载均衡、静态资源托管等功能


反向代理

反向代理:由于每一个服务器,都存在不同的访问路径,预先设置一个统一的访问路径,当到达nginx,被拦截,再将请求转发到特定的服务中。

注意:反向代理的核心,就是统一管理被访问的服务器的路径,并给予统一的访问路径,内部再进行转发

负载均衡

负载均衡:由于每一天服务器的性能都是不同的,为了解决大量用户访问,给服务器造成很大压力,可以根据服务器的性能情况,优先选择性能好的。

举一个简单的例子:假设服务器A可以同时容纳50个用户同时访问,服务器B可以容纳40个,服务器C可以容纳30个。这时候,服务器A 因为某种原因坏了,只能容纳10个。如果这时候突然来了60个用户访问,这时候解决办法

1 给服务器的性能进行优先级排序,性能高的优先被访问

2 给性能高的服务器,增加 权重。提高该服务器被访问的概率

如何下载nginx

  • 下载nginx的地址
https://nginx.org/en/download.html

当然了,在真实的项目中,往往要求,你的nginx的版本和jdk、maven、node 版本要适配。到时候再选择自己最合适的。


下载成功后,解压到指定的目录下

1 启动 Nginx

1.1 命令方式启动

进入 Nginx 下载目录的黑窗口:win+r 打开

启动命令:start nginx


验证是否启动成功

访问 http://localhost,出现 "Nginx" 欢迎页面即成功

查看进程:tasklist /fi "imagename eq nginx.exe"

常用命令

nginx -s stop  快速停止

nginx -s quit  优雅停止

nginx -s reload  重新加载配置

nginx -s reopen 重新打开日志文件

1.2 双击nginx.exe 

启动效果:双击后会短暂弹出命令行窗口,随后自动关闭,此时 Nginx 已在后台运行(可通过任务管理器查看 nginx.exe 进程确认)

缺点:若启动失败(如端口被占用),窗口一闪而过,难以查看错误信息(需通过 logs/error.log 日志文件排查)。


重点:在nginx.conf文件中,添加相关配置比如添加统一的访问路径,添加转发路径,添加权重等

nginx.conf 文件中的结构:

设置转发路径:当客户端发送请求【nginx预先设置好的请求】,被拦截后,转发到指定的服务器中

因此需要配置 目标服务器的访问路径。

http://www.xdnf.cn/news/17975.html

相关文章:

  • QT+Yolov8 推理部署,ONNX模型 ,实例分割+目标检测
  • 14、Docker Compose 安装 Redis 集群(三主三从)
  • linux 软硬链接详解
  • vscode的wsl环境,ESP32驱动0.96寸oled屏幕
  • 前端包管理工具
  • 基于wireshark的USB 全速硬件抓包工具USB Sniffer Lite的使用
  • 【lucene】DocumentsWriterFlushControl
  • 负载因子(Load Factor) :哈希表(Hash Table)中的一个关键性能指标
  • C++ 滑动窗口、二分查找
  • Ubuntu 22.04 远程桌面设置固定密码的方法
  • 快手入局外卖?上桌了,又没上
  • 第4节课:多模态大模型的核心能力(多模态大模型基础教程)
  • 18.13 《3倍效率提升!Hugging Face datasets.map高级技巧实战指南》
  • 顺序表插入删除
  • list模拟实现
  • 2025 年电赛 C 题 发挥部分 1:多正方形 / 重叠正方形高精度识别与最小边长测量
  • 36 C++ STL模板库5-string
  • %in%与`==
  • pnpm常用命令;为什么使用pnpm?
  • CV 医学影像分类、分割、目标检测,之【肺结节目标检测】项目拆解
  • 华为6730交换机恢复接口默认配置
  • 疏老师-python训练营-Day45Tensorboard使用介绍
  • elasticsearch冷热数据读写分离!
  • 数学建模-非线性规划模型
  • Linux编程1:进程和线程
  • 目标检测-动手学计算机视觉12
  • 爱情的本质及模拟推演
  • 机器翻译:Hugging Face库详解
  • 模型选择与调优
  • Java 并发新范式:用 Structured Concurrency 优雅收拾多线程烂摊子