2. 编辑配置文件:通常情况下,你需要编辑 `/etc/nginx/nginx.conf` 或者位于 `/etc/nginx/sites-available/` 目录下的特定站点配置文件。
以下是一个基本的反向代理配置示例:
http { # 服务器块定义 server { # 监听端口 listen 80; # 服务器名称,可以是域名或IP地址 server_name yourdomain.com; # 定位到特定的路径,这里拦截所有以 /api/ 开头的请求 location /api/ { # 设置代理服务器,即后端服务器的地址 proxy_pass http://backend_server; # 设置传递给后端服务器的请求头信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 其他可能的代理设置,如超时时间等 proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; # 如果需要,可以设置代理缓存等 # proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g # inactive=60m use_temp_path=off; # proxy_cache my_cache; # proxy_cache_valid 200 302 60m; # proxy_cache_valid 404 1m; } # 其他location块和配置... } # 可以在这里定义upstream,如果你的后端有多个服务器需要负载均衡 # upstream backend_server { # server backend1.example.com; # server backend2.example.com; # # 其他服务器和负载均衡配置... # } }
以下是具体步骤:
1. 定义服务器块(server):在 `http` 块内定义一个 `server` 块,指定监听的端口和服务器名称。
2. 设置 location:在 `server` 块内,使用 `location` 指令来匹配特定的请求路径。通常,你会为需要反向代理的路径设置一个 `location`。
3. 配置代理传递(proxy_pass):在 `location` 块内使用 `proxy_pass` 指令设置后端服务器的地址。
4. 设置请求头(proxy_set_header):为了让后端服务器能够获取到客户端的原始信息,你可能需要设置一些请求头,例如 `Host`、`X-Real-IP`、`X-forwarded-for` 和 `X-forwarded-Proto`。
5. 配置超时(proxy_connect_timeout、proxy_send_timeout、proxy_read_timeout):这些指令用于设置连接、发送和读取数据的超时时间。
6. (可选)配置负载均衡:如果你有多个后端服务器,可以在 `http` 块中使用 `upstream` 指令来定义它们,并在 `proxy_pass` 指令中使用 `upstream` 的名称。
7. (可选)配置缓存:如果你需要,可以配置代理缓存来存储常用响应。
8. 测试配置:在重新加载 nginx 配置之前,使用命令 `nginx -t` 来测试配置文件的正确性。
9. 应用配置:使用命令 `nginx -s reload` 来应用新的配置或者重新启动 nginx。
确保你根据自己的实际需求修改示例中的 `yourdomain.com`、`/api/` 和 `http://backend_server` 等占位符。