我们以一个例子来说明
假设我们是一个最简单的场景,用户非常少,但是网站前后端是分离的,部署在两台不同服务器上
如果没有 Nginx:
则用户直接访问前端 URL,前端调用后端 URL,后端的 URL 是暴露的,并且有跨域问题(跨域:浏览器会阻止 ip 不同的访问)
如果有 Nginx:
则用户访问 Nginx 的入口点,后端隐藏
架构:
一般来说,Nginx 放置在前端服务器上。用户访问时,前端代码只需要调用相对位置,nginx 转发到后端
正向代理:
它是指用户主动布置代理服务器,就是类似于我们的 VPN,用户->VPN 服务器->网站
反向代理:
就比如网站上再部署一个代理服务器
用户->nginx(代理服务器)->内部服务器
反向代理的情况下,用户不知道网站内部有没有代理
Nginx 作为唯一入口:
- 静态请求(如
/index.html)→ Nginx 直接返回前端文件。 - API 请求(如
/api/login)→ Nginx 反向代理到后端服务器(192.168.1.20:3000)。