一、服务器前置知识
在学习Nginx服务器之前,先了解一下前后端分离下,对于服务器的概念;
目前项目开发一般都会采取前后端项目的分离,而前后端分离之后,前后端的项目都需要部署到服务器中,用户才能够访问到,而前端项目一般为一些静态资源(html、css、js),后端项目则需要处理大量的动态数据,因此二者对于服务器的需求是不同的,后端项目一般采用tomcat这类服务器,来运行Java应用程序,而前端项目的需求,如数据渲染等,一般会采用nginx这类服务器。
二、Nginx简介
Nginx是一款开源的服务器软件,类似于Tomcat,目前有四个发行版本:
- Nginx开源版(适合二次开发)
- Nginx plus 商业版 (要钱,但功能更强,比如主动健康检查、监控)
- Openresty (国人基于Nginx做的二次开发,可以基于Lua脚本做各种配置)
- Tengine (淘宝基于Nginx开发的Web服务器,经历了双11这些高并发场景的考验)
三、为什么需要Nginx?
作为前端服务器
前端项目为静态资源,如果使用tomcat这类专门处理Java应用程序(动态资源)的服务器速度就慢了(目前和Nginx差不多),我们需要一个对于专门存放、处理和渲染表现性能出色的服务器(反向代理、静态资源处理器);
提升加载静态资源的速度
对于京东、淘宝这类大型的电商项目,用户初次进入时需要加载大量的静态资源,为了提升访问速度,可以将部分静态资源缓存到Nginx服务器上,同时利用Nginx的分组加载机制,将静态资源按需加载。这种做法可以有效减轻服务器的负担,提升用户的访问体验。
四、如何使用Nginx?
使用Nginx开发版非常简单。
步骤
- 在官网下载Nginx对应版本
- 找到conf目录下的nginx.conf进行配置即可(Nginx监听的端口号、虚拟主机)
- 使用命令启动和关闭Nginx,注意每一修改配置文件都需要重新加载一次Nginx
常用命令
Windows:
进入到nginx的安装目录下面(nginx.exe所在的目录)
● 启动: start nginx;
● 关闭: nginx -s stop;
● 重新加载:nginx -s reload
Linux:
进入到sbin/目录下
● 启动: ./nginx
● 关闭: ./nginx -s stop;
● 重新加载:./nginx -s reload
五、Nginx有哪些应用场景?
Nginx不仅仅是一款Web服务器,还具备广泛的应用场景:
- HTTP服务器:Nginx可以作为一个轻量级的HTTP服务器,直接处理客户端的请求。
- 反向代理:Nginx常用于反向代理,将请求转发到后端的服务器上并返回结果,客户端无需知道实际的后端地址。
- 负载均衡:Nginx支持多种负载均衡算法,如轮询、加权轮询等,将用户的请求合理地分发到后端的服务器集群中,从而提升系统的并发处理能力。
- 网关服务:在微服务架构中,Nginx常被用作网关,统一管理不同微服务的访问入口,并通过反向代理和负载均衡将请求路由到正确的服务节点上