Nginx 反向代理(Reverse Proxy)是一种常见的服务器配置,用于将客户端请求转发到后端服务器,通过这种方式,Nginx 可以处理静态内容、负载均衡、缓存等功能,同时隐藏后端服务器的真实 IP 地址和端口号。
以下是一个简单的 Nginx 反向代理配置示例:
1、安装 Nginx
确保你已经安装了 Nginx,如果没有安装,可以使用以下命令进行安装:
sudo apt update sudo apt install nginx
2、配置反向代理
打开 Nginx 配置文件进行编辑,主配置文件位于/etc/nginx/nginx.conf
或/etc/nginx/sitesavailable/default
。
sudo nano /etc/nginx/sitesavailable/default
3、添加反向代理配置
在配置文件中添加如下内容:
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://backend_server_ip:backend_port; proxy_set_header Host $host; proxy_set_header XRealIP $remote_addr; proxy_set_header XForwardedFor $proxy_add_x_forwarded_for; proxy_set_header XForwardedProto $scheme; } }
请将yourdomain.com
替换为你的域名,将http://backend_server_ip:backend_port
替换为后端服务器的 IP 地址和端口号。
4、测试配置
保存并关闭文件后,测试 Nginx 配置是否正确:
sudo nginx t
5、重启 Nginx
如果配置正确,重启 Nginx 以应用更改:
sudo systemctl restart nginx
6、验证反向代理
你可以通过访问http://yourdomain.com
来验证反向代理是否工作正常,请求应该被转发到后端服务器。
其他高级配置
负载均衡
你可以使用 Nginx 实现简单的负载均衡,例如轮询方式:
upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header XRealIP $remote_addr; proxy_set_header XForwardedFor $proxy_add_x_forwarded_for; proxy_set_header XForwardedProto $scheme; } }
HTTPS 支持
为了支持 HTTPS,你需要获取一个 SSL 证书,并在 Nginx 配置中添加相应的设置:
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; location / { proxy_pass http://backend_server_ip:backend_port; proxy_set_header Host $host; proxy_set_header XRealIP $remote_addr; proxy_set_header XForwardedFor $proxy_add_x_forwarded_for; proxy_set_header XForwardedProto $scheme; } }
是基本的 Nginx 反向代理配置示例,根据实际需求,你可以进一步优化和扩展配置。