在 Linux 上使用 Nginx 设置反向代理 是非常常见的操作,下面从基本概念 → 安装 → 配置示例 → 常用参数 → 测试与排错一步步说明。
反向代理是指: 客户端访问 Nginx,Nginx 再把请求转发到后端服务(如 Tomcat、Node.js、Python、Java 等)
用户 → Nginx(80/443) → 后端服务(127.0.0.1:8080)
yum install -y nginx
systemctl enable nginx
systemctl start nginx
apt update
apt install -y nginx
systemctl enable nginx
systemctl start nginx
http://example.com 代理到本地 8080 端口编辑配置文件:
vim /etc/nginx/conf.d/proxy.conf
内容如下:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}
保存后测试并重启:
nginx -t
systemctl restart nginx
✅ 访问 http://example.com 就会转发到 127.0.0.1:8080
location /api/ {
proxy_pass http://127.0.0.1:9000/;
}
注意:
proxy_pass 末尾的 / 会影响路径拼接/api/user → http://127.0.0.1:9000/userserver {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
location / {
proxy_pass http://127.0.0.1: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 https;
}
}
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
proxy_buffering on;
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
location / {
proxy_pass http://backend;
}
}
proxy_pass 地址错误location 配置错误tail -f /var/log/nginx/error.log
✅ 核心指令:
proxy_passproxy_set_headerupstream(负载均衡)如果你有:
可以告诉我,我可以给你精准配置示例。