易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3815|回复: 0
收起左侧

nginx实现反向代理 配置多域名以及多端口号

[复制链接]
发表于 2020-2-14 17:22:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
多个服务部署在同一个服务器,使用不同的端口。
. K" A1 y0 {* M- M3 V& T* G! N
一、思考过程
  • 如果不想带上端口号,就只能访问 80 或 443 端口。
  • 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
  • 可以用过子域名区分服务,通过反向代理转发到不同的 Server。
    9 s8 Q6 s* ?3 I9 d, ~. m
二、方案评估
  • 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
  • 使用二级目录区分服务,可行性很大。
    • 能通过二级目录名,明确区分服务。
    • 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
    • 可能导致 url 过长。
    • 还是没有什么美观性。& Q& j. O8 ?7 E4 |/ S
  • 使用子域名区分服务,可行性与二级目录相差无几。
    • 能通过子域名,明确区分服务。
    • 具有一定的美观性。$ {6 l* N1 z; `4 v
    ( t1 ~; Q2 s" R: N, g
三、实践操作
使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。
1、找到nginx的配置文件
  打开nginx的配置文件,打开  /安装路径/conf/nginx.conf,进行配置
2、修改配置
[backcolor=rgb(255, 255, 255) !important][size=1em]
1

) \. V1 x& p& A# P
2
1 m  K" p* [3 t3 E# a2 \
3

* C1 C7 F5 ^9 m% r( T" C* N
4

  [3 }. O0 V# ~/ a5 Q
5
0 b$ `! ~) |! W+ Q7 f
6

1 @4 w. D# z/ [  f
7
5 ~& e$ O9 @$ X3 E2 F. L  D. N
8
& B) V5 [) Y  A" @/ P
9
. A2 a3 s2 \. w4 O! {3 Y2 R
10

" m+ V0 Z" C, D
11
, g: L% m0 t3 W6 r
12

+ e+ k7 A( R6 L2 I% ~$ n
13
# G" S; K! d' A) v% _6 N
14
: u' V: H5 u8 Y. m7 p" U
15

% }3 ]1 ?1 o! s- {8 I
16

2 x. N+ v$ t" p+ v5 C7 b
17
! b( `0 o# F0 s6 k* u( B
18
; I& Z% @8 t5 q9 F& e
19
- ^7 q, j  G* T6 A9 L  R7 x, Y3 `+ b
20

0 {( G: k" C: u8 F  K
21

  ?- y$ Y( g/ m) l/ @9 ]( G
22
1 d8 k% A) J' e/ ~* K, B& D
23

) |6 a, p+ f, B' M
24

( _) a+ f4 T, C/ F/ T- }" V
25

( p0 M9 F& a! x$ x+ s, o
26

/ ~+ a& [: d7 K1 ]; W3 U
27
4 U* f. L* S3 |: `5 V
28
; c' i# J7 t- j1 j
29

6 |2 y) P1 N% L' s; g
30
7 ^5 i; l8 B6 u0 N" i. l, K5 S
31

4 F- O7 Y( x4 O* n" K5 g
32

1 j1 m/ V' ?! f. a; V* J- h
33

6 s, G# w) ^7 z0 E8 ^8 t; ^; {" b
34

0 e7 m# n) C( P
35
6 d( d6 R; {7 X  m4 n
36

1 r4 t5 w/ Y8 o' h8 \; `
37
# |* c7 n9 V# u+ ?
38

, d2 O, G7 w8 i/ K8 l
39
' @* \  l4 l: C
40

- s% Y( d* ~" {  U. k2 P  D
41
4 Y5 Z( a9 y) A0 x' d+ [
42

4 o. w( N2 ?  x! H1 {
43

. a' c- q1 A# J: p) F1 {
44
0 N. d# g8 H" O  J
45
  }; m5 D: r1 i
server {

' I, ?, `8 k4 X) C& V3 i
2 P" l, W) U# m3 h! C4 f
        listen       80;
1 z1 S, n1 s) a7 ?' w
* e' j/ n4 J; n7 ]
        server_name  *.abc.com;

, ]$ [& B9 F3 v/ b
, `* S: g* x6 j7 Z+ `- j: h
        if ($http_host ~* "^(.*?)\.abc\.com$") {    #正则表达式
1 y, V  ]  x$ e$ {: p1 F9 I  t1 }

/ n) X% |: r. f$ k& Y
                set $domain $1;                     #设置变量
0 S9 R0 [" d; j& a
        }

: P, {0 L- j; [7 n* V
# [3 n; r" D- C, w! e( w: {2 S( Q8 a7 z9 k( J
        location / {
, d9 D. |! C; o1 ~. C
) s; G" s- e* w# R% I" W, T
            if ($domain ~* "shop") {

% K0 F0 l5 _, E8 m2 e5 s( d$ V. l( w5 `. J4 N' N3 l7 c  c/ ~9 r
               proxy_pass http://abc.com:3001;      #域名中有shop,转发到3001端口

$ H4 ]4 z; S6 t6 Y: Z" q2 E
9 X' |# `1 Q1 k5 \
            }

- G* p, \7 g# d/ y5 F6 u" h6 D( E. b* d8 H0 s2 w6 ]
            if ($domain ~* "mail") {

# `0 V% L$ \0 n" l) ?  T
6 Z) n- P% U; `# a
               proxy_pass http://abc.com:3002;      #域名中有mail,转发到3002端口
& K' E5 ^9 K: X  X0 O
( j) z* u) y- g9 u
            }
' m7 W( ]7 E! i- t# h( U7 U& O
2 P( U/ F9 G# |; u- K5 S+ x

2 |5 z* p4 W1 s  {
            tcp_nodelay     on;
9 u% O) T" Z& M9 M% o; f4 v

: c8 ]/ T0 `+ I
            proxy_set_header Host            $host;

- W$ ?7 F: M! k* @. }& R; |1 f- `9 _2 ~; |/ o1 {- _
            proxy_set_header X-Real-IP       $remote_addr;

/ m# E0 n, B3 m& w+ |5 k
: O. i; @$ O9 {6 ^1 O$ B
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
. H$ W- E. c! N8 |& \2 _* u1 `0 l- `
1 h& j7 i2 u+ t( U8 _: Q
            #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上
' C! r! W8 @3 a8 M

" w, C; _0 Q+ n5 Z) j6 q$ @7 h2 x; _: N1 l
            root   html;
+ o+ M  E+ o0 o. K+ O! _

2 ^# |  f2 P" O' h
            index  index.html index.htm;            #默认情况
9 n: z8 T0 P6 u" N8 X. O' |4 W

. C- ~9 ?% y! G2 c) g. j
        }
: K$ P: c" B/ `  ]
1 @# I& x( L) R4 e* r" N
}

* Z3 J  F$ G9 Y1 o/ T

, a4 j2 F. p; a% A0 m7 P0 L

1 W8 y' j1 U) W0 k4 h7 ]0 d! {  O) t' ]$ A: J& H3 [+ ^% k/ w

6 G5 V" Z# \  d8 D# g8 c8 H( i  N2 k: p
3 ?5 C1 k5 e. F* a
! W2 C8 [% \/ P; q( }( a
! i2 a  [1 s8 i7 J9 D
+ C7 d8 m, s5 ~2 U. }4 f7 V
0 w7 M; f3 T  [7 e$ c
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 01:03 , Processed in 0.042629 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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