Nginx 是什么
总结一句话:Nginx 是一个高性能的 Web 服务器,同时也常用作反向代理、负载均衡和网关。
一、Nginx 的核心定位
Nginx(发音:engine x) 最初是一个 Web 服务器(HTTP Server),用来处理 HTTP 请求并向客户端返回网页、图片、接口响应等。
随着功能不断扩展,现在它有了多种常用角色:
| 角色 | 说明 |
|---|---|
| Web 服务器 | 直接响应静态资源(HTML、CSS、JS、图片等)请求,比如前端静态站点部署。 |
| 反向代理(Reverse Proxy) | 接收客户端请求,再转发到后端服务(如 Node.js、Python、Java API),并把响应返回给客户端。 |
| 负载均衡器(Load Balancer) | 当你有多个后端实例时,Nginx 可以根据策略(轮询、IP 哈希、最少连接数等)将流量分配给不同的服务器,提升系统吞吐量与容灾能力。 |
| 网关(Gateway) | 作为应用进入入口,统一处理身份认证、路由转发、限流、缓存、日志记录等逻辑(轻量级 API Gateway)。 |
| 反向缓存(Proxy Cache) | 缓存后端生成的页面或接口结果,减少后端压力。 |
| HTTPS/TLS 终结点 | 处理 SSL/TLS 加解密,让后端服务以普通 HTTP 通信。 |
二、常见使用方式示例
1. 静态网站托管
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}
浏览器访问 http://example.com 时,Nginx 直接返回 /var/www/html/index.html。
2. 反向代理到后端服务
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:5000;
}
}
所有到 api.example.com 的请求都被转发到本机 5000 端口(假设是 Flask 或 Node.js 服务)。
3. 负载均衡
upstream backend_servers {
server 10.0.0.1:8080;
server 10.0.0.2:8080;
server 10.0.0.3:8080;
}
server {
listen 80;
location / {
proxy_pass http://backend_servers;
}
}
请求会轮流分发到三个后端节点,实现负载均衡。
三、Nginx 的特点
- 高性能:采用事件驱动模型,可同时处理大量并发;
- 轻量级、稳定:占用资源小,常年运行无压力;
- 配置灵活:通过
.conf或include轻松组织多站点; - 生态丰富:支持 HTTP、HTTPS、TCP、UDP,甚至可自定义模块。

