nginx反向代理需在conf.d下建配置文件,含listen、server_name、location及proxy_pass,并配全host/x-real-ip/x-forwarded-for头;改后执行nginx -t校验、-s reload生效;https需加ssl监听与证书,并配置80端口301跳转。

直接在 Nginx 配置文件里加一个 server 块,指定监听端口、域名和转发目标,就能实现基础反向代理。关键不是写得多,而是把 proxy_pass 和几个必要头信息配对写准。
确认配置位置和结构
Nginx 主配置通常在 /etc/nginx/nginx.conf,但更推荐把反向代理配置单独放在 /etc/nginx/conf.d/ 目录下(比如新建 myapp.conf)。确保主配置里有这行:
-
include /etc/nginx/conf.d/*.conf;(在http块内)
写一个最小可用的 server 块
例如将 app.example.com 的所有请求转到内网 192.168.1.100:8080:
server {listen 80;server_name app.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_pass 后面的地址末尾是否带 / 会影响路径拼接逻辑;Host 和 X-Real-IP 这几项不加,后端可能收不到原始域名或真实客户端 IP。
验证并生效配置
改完别急着重启,先做两步检查:
- 运行
sudo nginx -t确认语法无误 - 执行
sudo nginx -s reload热重载配置(不中断服务)
如果后端服务本身带路径前缀(比如只响应 /api/xxx),可在 location 中精确匹配,例如 location /api/ { proxy_pass http://.../api/; },注意结尾斜杠对齐。
补充 HTTPS 支持(推荐上线前加上)
用 Certbot 自动申请证书后,Nginx 会生成带 ssl 的 server 块。核心变化是:
listen 443 ssl;- 加上
ssl_certificate和ssl_certificate_key路径 - 通常再加一个
listen 80的 server 块,用return 301 https://$host$request_uri;强制跳转











