Nginx反向代理配置案例:实用场景与实现方法
一、引言
Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛应用于互联网项目中。通过反向代理配置,Nginx 可以将客户端请求转发到后端的多个服务器,实现负载均衡、隐藏真实服务器地址等功能。下面将介绍多个实用的 Nginx 反向代理配置案例。
二、案例一:基本的单服务器反向代理
场景描述
假设我们有一个后端 Web 应用程序运行在服务器 192.168.1.100
的 8080
端口上,现在需要通过 Nginx 作为反向代理,将客户端对 HTTP://example.com
的请求转发到该后端应用。
实现步骤
- 打开 Nginx 的配置文件,通常位于
/etc/nginx/nginx.conf
或/etc/nginx/sites - available/default
。 - 在
server
块中添加以下配置:server { listen 80; server_name example.com; location / { proxy_pass http://192.168.1.100:8080; 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; } }
- 配置解释:
listen 80
:监听 HTTP 的 80 端口。server_name example.com
:指定域名。proxy_pass
:指定后端服务器的地址和端口。proxy_set_header
:设置请求头信息,将客户端的真实 IP 等信息传递给后端服务器。
- 重启 Nginx 服务,使配置生效。
三、案例二:负载均衡反向代理
场景描述
后端有多个相同的 Web 应用服务器,分别为 192.168.1.100:8080
、192.168.1.101:8080
和 192.168.1.102:8080
,需要 Nginx 将客户端请求均匀地分配到这些服务器上。
实现步骤
- 打开 Nginx 配置文件。
- 在
http
块中定义上游服务器组:http { upstream backend_servers { server 192.168.1.100:8080; server 192.168.1.101:8080; server 192.168.1.102:8080; } server { listen 80; server_name example.com; location / { proxy_pass http://backend_servers; 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; } } }
- 这里使用了
upstream
指令定义了一个名为backend_servers
的服务器组,Nginx 默认使用轮询算法将请求分发到组内的服务器。 - 保存配置并重启 Nginx 服务。
四、案例三:基于 URL 路径的反向代理
场景描述
当客户端请求 http://example.com/api
开头的 URL 时,将请求转发到后端的 API 服务器 192.168.1.103:8080
;当请求其他路径时,转发到 Web 应用服务器 192.168.1.104:8080
。
实现步骤
- 编辑 Nginx 配置文件。
- 在
server
块中添加以下配置:server { listen 80; server_name example.com; location /api/ { proxy_pass http://192.168.1.103:8080; 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; } location / { proxy_pass http://192.168.1.104:8080; 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; } }
- 此配置根据请求的 URL 路径,将不同的请求转发到对应的后端服务器。
- 保存配置并重启 Nginx 服务。
通过以上不同的 Nginx 反向代理配置案例,可以灵活应对各种复杂的应用场景,提升系统的性能和可用性。
本文链接:https://blog.runxinyun.com/post/467.html 转载需授权!
留言0