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预先设置好的请求】,被拦截后,转发到指定的服务器中
因此需要配置 目标服务器的访问路径。