
对Nginx的一些总结
正向代理和反向代理
通俗的解释就是:
正向代理:代理客户端,隐藏客户端,帮助客户端去访问别人,例如使用vpn去访问Google。
反向代理:代理服务器,隐藏后端服务器,帮助服务器接待客户端,例如用nginx做负载均衡。
Nginx在项目中的五个常见用法
1.反向代理
比如:
text
用户 → Nginx:443 → Spring Boot:8080
2.部署前端静态资源
text
浏览器
↓
Nginx
↓
index.html / js / css
3.HTTPS / SSL
text
浏览器
↓ HTTPS
Nginx
↓ HTTP
Spring Boot
SSL 证书通常放在 Nginx,这样后面的 Java 服务不用自己处理 HTTPS。
4.负载均衡
项目访问量大之后,不可能永远只有:
text
Spring Boot :8080
可能同时启动:
text
Spring Boot A :8081
Spring Boot B :8082
Spring Boot C :8083
然后:
text
┌→ Spring A
用户 → Nginx ─┼→ Spring B
└→ Spring C
Nginx 会把请求分发到多个实例。
例如:
text
请求1 → 8081请求2 → 8082请求3 → 8083请求4 → 8081
默认类似轮询。
所以:
text
Nginx
↓
负载均衡
↓
多个后端实例
是非常经典的部署方式。
5.网关前的一层基础设施
Nginx 主要负责:
text
HTTPS
域名
公网入口
基础负载均衡
静态资源
API Gateway 主要负责:
text
Token
权限
接口路由
限流
服务治理
客户端
↓
HTTPS
↓
Nginx
↓
API Gateway
↓
验证 Token
↓
业务服务
Nginx配置的四个关键词
server → 定义一个网站
listen → 监听哪个端口
location → 哪种 URL 怎么处理
proxy_pass → 请求转发到哪里