Nginx如何给网址反向代理到域名上,可以批量吗

  [复制链接]  81查看
易西 发表于 2026-6-18 09:29:06 | 显示全部楼层 |阅读模式
Nginx如何给网址反向代理到域名上,可以批量吗

* g! w( z" y( U* d7 K
[发帖际遇]: 一个袋子砸在了 易西 头上,易西 赚了 5 金钱. 幸运榜 / 衰神榜
 楼主| 易西 发表于 2026-6-18 09:29:49 | 显示全部楼层
Nginx 反向代理的核心是通过 server 块匹配域名,利用 proxy_pass 转发请求。‌可以批量配置‌,推荐通过独立文件管理或正则映射实现高效维护 。‌‌
; G9 y- T1 W6 G$ @; ?, u9 z
! }+ a. ~5 u1 ]& @, o5 r: d% J基础单域名反向代理配置
6 c8 F+ y! u: c* U, U在 /etc/nginx/conf.d/ 下新建 .conf 文件(如 proxy.conf),每个域名对应一个 server 块:, {: i' w; i' x
. S1 x8 t+ X* S# s) u- ~6 i9 l$ `
nginx
5 k4 z" T( p; X8 g! u! i9 {server {
) |3 U% O' n; }$ {) x3 R# n    listen 80;' \8 A3 g% o6 U! r) X6 }! y
    server_name example.com;  # 绑定域名
  c  v  R. Y  U. [3 c* h; y+ P
/ g; t9 ~; ~" C8 ?6 f    location / {: U3 C: d# b6 N: b
        proxy_pass http://127.0.0.1:8080;  # 转发至后端地址
( G5 H7 t+ O6 ?+ e6 }5 ^        proxy_set_header Host $host;       # 传递原始域名
; v# ^. e0 l; p* I# s        proxy_set_header X-Real-IP $remote_addr;  X. {6 C# D7 f5 F
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;8 n( h2 q/ E" g' v
    }
. T9 _) r3 Z( P" C2 P# O: c- k}
* K; C! m# |+ E) j配置完成后执行 nginx -t 测试语法,无误后运行 nginx -s reload 生效 。‌‌/ r0 r) @; |6 L+ E, S
- v: d$ K* {0 r; n* H' C4 p1 m
批量配置方案
" b/ D5 e7 \: o2 Z  s  v若需管理大量域名,避免重复代码,可采用以下两种批量方式:
/ w* l% S2 B, x) h. l6 H, z6 H
; x$ T0 S: t& R* Q) e/ l. ~‌多文件分块管理(推荐)‌
9 \$ o3 J( G. @: h, d' J  F' T" ]4 h
在 /etc/nginx/conf.d/ 目录下为每个域名或每组相似域名创建独立 .conf 文件。' ~& ~$ R. u$ w0 y7 l8 ~
Nginx 会自动加载该目录下的所有配置文件,便于隔离维护和版本控制 。
/ e( d: s0 O5 N. |4 i示例:site_a.conf, site_b.conf 分别定义不同的 server_name 和 proxy_pass 。‌‌0 u$ T! I, A8 M5 P6 q8 D8 b
‌正则通配符批量匹配‌
2 \8 A/ T4 Z2 S" \! n
2 F. ?. X5 a# k: n3 `适用于二级域名规则统一(如 *.test.com 指向不同端口)的场景。" H$ d: b. z5 N+ ?) T; c
使用 map 指令动态映射域名到后端地址,减少 server 块数量 。
+ h* O! F7 T$ u0 G2 ]  d) E示例逻辑:
: l; n6 X& f) U6 O2 t# {) V; jnginx
: Q4 k# J* B# N/ hmap $host $backend_uri {4 \1 I; T, w1 W$ ^# ]' s' p6 \
    ~^blog\.      http://127.0.0.1:8081;+ d9 k8 B" y' h, ]4 d& u
    ~^shop\.      http://127.0.0.1:8082;& }7 v" Y" l" `4 o; B$ m( ^8 @. X
    default       http://127.0.0.1:8080;
0 {+ [, p8 }1 k8 p% q0 _}
; t% H. I( {) c& O# Kserver {
8 L  g2 q/ Y# L0 T- \: k    listen 80;
8 A% p" [) u" }# A2 S    server_name _._;  # 捕获所有未单独匹配的域名
3 n( z2 j" l- O- [" e    location / {  m5 w" y# ?4 F7 w: Z4 F
        proxy_pass $backend_uri;. [- A# l' j/ y/ _  C
    }
2 l7 Q8 z2 P, y% y}
" B, c# G; H6 T1 l- }3 x' |0 `/ V注意:复杂批量逻辑建议结合脚本生成配置文件,再重载 Nginx 。‌‌
3 J& `+ O, k0 s3 ~- q( ~7 [4 q关键注意事项
- P/ T- f: \! q7 W2 x‌DNS 解析‌:确保域名已解析到 Nginx 服务器公网 IP。1 s$ M2 `& z) l  N3 h& ^8 l
‌Header 传递‌:务必设置 Host、X-Real-IP 等头信息,否则后端无法获取真实客户端信息 。
+ E- }5 V2 m- t+ T  f4 b‌HTTPS 支持‌:若需加密,监听 443 端口并配置 ssl_certificate,或配置 80 端口 301 跳转至 HTTPS 。‌‌$ y3 B! [! v6 A& Z: h
需要我帮你整理一个域名批量配置的自动化脚本模板吗?可以一键生成Nginx配置文件,节省手动编写时间。
* L5 T. t% m/ U0 t3 m2 G7 P7 v/ o) x8 c; E: ]3 L
参考
 楼主| 易西 发表于 2026-6-18 09:31:47 | 显示全部楼层
https://cloud.tencent.com/developer/article/2055416
7 T" u' m& O, U8 h( Z$ T6 J+ W$ K参考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

邮箱|首页|小黑屋|吾侪 ( 蜀ICP备2020029307号-4 )

GMT+8, 2026-8-28 15:02 , Processed in 0.061854 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © , 吾侪网

快速回复 返回顶部 返回列表