Nginx 是一个高性能的 HTTP 和反向代理服务器,常用于 Web 服务器、负载均衡器和反向代理。它以其高性能、稳定性、丰富的功能集、简单的配置文件和低资源消耗而著称。在部署 Web 应用程序时,Nginx 常被用来处理静态文件、反向代理动态内容、负载均衡等任务。
一、反向代理
应用场景:当需要将来自客户端的请求转发给后端的不同服务器时,可以使用 Nginx 作为反向代理服务器。
1.1请求转发
配置nginx原因:
会破坏前端封装的结果,因为之前的前端基地址都是一个,但是后端是多个工程共同作用,每个工程的端口号不一样,意味着前端的基地址写后端任意一个端口都是不满足需求的,所以需要使用nginx代理,转发请求到后端。
1.1.1安装nginx
1、下载解压,直接解压后就行了
2、在nginx的的安装目录下,输入cmd,进入命令提示符
3、输入nginx.exe,打开nginx,并能看到光标一直闪烁
4、关闭nginx,需要在其安装目录下,另外打开一个cmd窗口输入nginx.exe -s stop
1.1.2配置nginx
1)后端配置
1、找到对应后端的端口是多少
在自己的后端工程化项目中src/resources/application.properties里,此时的8001是该子工程的端口
2、在nginx安装目录下进入conf,双击nginx.conf打开,进行配置修改
nginx的默认端口是80,因为害怕端口冲突,改成了81
在http{…}里面编写以下代码来创建配置
server {
listen 9001;
server_name localhost;
location ~ /aaa/ {
proxy_pass http://localhost:8001;
}
location ~ /bbb/ {
proxy_pass http://localhost:8002;
}
}
其中9001是nginx配置的对外监听的端口号,可以修改成其他的
location ~ /aaa/ {...}
中的~
表示此时的匹配方式是正则匹配,这样的话只要路径里面包含/aaa/就可以匹配上,不加~
的话代表只有路径就是/aaa/时才可以匹配上
~/aaa/ :是端口路径匹配,项目里包含的内容(在每个子工程的控制器controller里可以看到请求的路径)
8001端口
8002端口
2)前端配置
将封装请求的基地址改成:nginx对外监听的端口号
1.2负载均衡
要做负载均衡有一个特点:需要用到集群。集群:比如说我现在有两台服务器,一个端口是8003,另一个端口是8004,但是这两ccc这个项目
二、静态文件服务
应用场景:当需要提供大量的静态文件(如 HTML、图片、视频等)时,Nginx 可以非常高效地处理这些请求,因为它采用了异步非阻塞的事件处理模型。
通俗的讲:实现动静分离,我们在tomcat里面放了java代码部分,然后又专门找了个服务器放静态资源(html、图片…),当我们访问java代码时就去请求tomcat,当我们访问静态资源时就去请求我们的静态服务器
特点:
- 高性能:能处理大量的并发请求。
- 资源占用少:相比传统的同步服务器,Nginx 对内存和CPU的使用更加节约。