在 linux 上配置 nginx 反向代理需安装 Nginx、编辑站点配置文件(如 /etc/nginx/sites-available/myapp),设置 listen、server_name、proxy_pass 及关键请求头,启用配置后执行 nginx -t 测试并 systemctl reload nginx 生效。

在 Linux 上配置 Nginx 反向代理其实不复杂,只要理解基本结构和常用指令就能快速上手。Nginx 作为反向代理时,会接收客户端请求,然后转发给后端服务(比如 node.js、python 应用、docker 容器等),再把响应返回给客户端,对外隐藏真实服务器信息。
安装 Nginx
大多数 Linux 发行版都支持通过包管理器安装 Nginx:
- ubuntu/debian:sudo apt update && sudo apt install nginx
- centos/RHEL:sudo yum install nginx 或 dnf install nginx
安装完成后启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
配置反向代理的基本步骤
Nginx 的主配置文件通常位于 /etc/nginx/nginx.conf,但站点配置建议放在 /etc/nginx/sites-available/ 并通过软链接启用(某些系统如 CentOS 默认没有这个目录,可手动创建或直接使用 conf.d)。
以代理本地运行在 3000 端口的 Web 服务为例:
- 创建一个新的配置文件,比如 /etc/nginx/sites-available/myapp:
server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:3000; 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:你的域名或 IP
- proxy_pass:实际后端服务地址
- proxy_set_header:传递客户端真实信息给后端,避免日志或鉴权出错
- 启用该配置(Ubuntu/Debian 常见方式):
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
- 测试配置是否正确:
sudo nginx -t
- 重新加载 Nginx 使配置生效:
sudo systemctl reload nginx
常见扩展配置
实际使用中可能还需要以下优化:
- 启用 https:配合 Let’s Encrypt 使用 Certbot 自动配置 ssl 证书
- 静态资源缓存:对图片、css、js 设置缓存头提升性能
- 负载均衡:多个后端实例可用 upstream 模块做分发
- 路径路由:不同路径代理到不同服务,例如 /api 转发到后端 API
比如按路径代理:
location /api/ { proxy_pass http://127.0.0.1:5000/; }
注意结尾的斜杠会影响转发行为,需留意。
基本上就这些。配置反向代理核心是 proxy_pass 和设置好请求头,其他根据需求逐步扩展。改完记得测试语法和重载服务,避免中断线上访问。