# Nginx 作为前端网关

URL: https://caijiao.org/nginx/gateway
Source: docs/nginx/gateway.md
Description: 本节介绍 Nginx 作为前端网关的配置方法，包括反向代理、负载均衡、请求路由和安全控制，实现高性能和高可用 Web 服务。

Nginx 可以作为前端网关，将请求路由到不同的后端服务，实现负载均衡、反向代理和安全控制。

## 一、反向代理

```nginx
server {
    listen 80;
    server_name example.com;

    location /api/ {
        proxy_pass http://backend_api;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        root /var/www/html;
        index index.html;
    }
}
````

* **proxy_pass**：将请求转发到后端服务
* 设置请求头保证客户端 IP 可用

## 二、请求路由

根据 URI 或 Host 分流请求：

```nginx
server {
    listen 80;

    location /service1/ {
        proxy_pass http://backend1;
    }

    location /service2/ {
        proxy_pass http://backend2;
    }
}
```

* 不同路径路由到不同后端服务，实现微服务网关功能

## 三、负载均衡

```nginx
upstream backend_api {
    least_conn;
    server 192.168.1.101;
    server 192.168.1.102;
}
```

* 将请求均衡分配到多台后端，提高可用性与性能

## 四、安全与性能优化

1. 配置 HTTPS，保障数据传输安全
2. 启用缓存与 gzip 压缩，提高响应速度
3. 配置访问控制与限流，防止恶意请求

---

通过将 Nginx 作为前端网关，可以集中管理请求路由、负载均衡和安全策略，实现高性能、高可用的 Web 服务架构。
