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

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.dtcms.com/a/331907.html

相关文章:

  • OpenCV图像注册模块
  • Spring 三级缓存三个小问题记录
  • linux常见文件系统+用户管理+常见故障
  • Redis面试精讲 Day 21:Redis缓存穿透、击穿、雪崩解决方案
  • 纸箱拆垛:物流自动化中的“开箱密码”与3D视觉的智能革命
  • JavaScript方法借用技术详解
  • 【软件安装|1】CentOS7最新可用国内 yum 镜像源配置和Linux版MySQL8.0安装及其相关知识
  • 6、C 语言指针初阶知识点总结
  • 金融新政激活工业“智脑”,鸿道操作系统筑基新型工业化
  • 70亿参数让机器人“开窍“:英伟达Cosmos Reason如何让AI理解物理世界
  • 批量标准化、模型的保存和加载
  • 20道DOM相关前端面试题
  • CLAM复现问题记录
  • flutter3.7.12版本设置TextField的contextMenuBuilder的文字颜色
  • 水印消失术!JavaAI深度学习去水印技术深度剖析
  • 在启智平台使用A100对文心开源大模型Ernie4.5 0.3B微调(失败)
  • vector 认识及使用
  • Docker 入门与实战:从环境搭建到项目部署
  • Java构造器与工厂模式(静态工程方法)详解
  • 20道JavaScript相关前端面试题及答案
  • 2025.8.24复习总结
  • WAF 与 SIEM 联动:攻击事件的实时告警与溯源分析流程
  • 3D-R1、Scene-R1、SpaceR论文解读
  • C#:TryGetValue
  • C语言零基础第16讲:内存函数
  • 技术速递|通过 GitHub Models 在 Actions 中实现项目自动化
  • linux 下第三方库编译及交叉编译——MDBTOOLS--arm-64
  • 使用Docker安装Gitea自托管的Git服务
  • 零基础从头教学Linux(Day 12)
  • python+vue扫盲