|
|
|
多个服务部署在同一个服务器,使用不同的端口。
( U. [1 O5 a! @" Q5 U% g( o一、思考过程- 如果不想带上端口号,就只能访问 80 或 443 端口。
- 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
- 可以用过子域名区分服务,通过反向代理转发到不同的 Server。
* p& K! a1 F* {# \$ x6 ]% \) g 二、方案评估- 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
- 使用二级目录区分服务,可行性很大。
- 能通过二级目录名,明确区分服务。
- 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
- 可能导致 url 过长。
- 还是没有什么美观性。/ C, V( k. }# V" d! {/ \
- 使用子域名区分服务,可行性与二级目录相差无几。
- 能通过子域名,明确区分服务。
- 具有一定的美观性。
+ Q8 g" x- \. k6 W$ x0 v 1 c" }6 s9 v5 {# w! q! A' |
三、实践操作使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。 1、找到nginx的配置文件 打开nginx的配置文件,打开 /安装路径/conf/nginx.conf,进行配置 2、修改配置 [backcolor=rgb(255, 255, 255) !important][size=1em]1
5 f: y* m+ q$ L4 C/ J( ~1 m2
9 @* }! }. x( x+ s3 ]5 D) ?) [3 # r6 a( ^' y2 v6 K+ U, E+ Q
4
. j. s2 R, D2 `! F2 F9 b5 # W) _) O# E& r: S4 a
6 ! h- d4 u. \4 B" S7 C7 P0 t/ {4 N
7 1 g; j* D/ @2 d. N! W. E
8
$ M- v. ]- \3 ^+ `8 ?5 t: z9
! |* C# S3 c: z- C4 v2 V5 g10
) a5 v$ Y& G4 ^ A11
. |6 T* {, w% T: n12 9 }$ n% i: F8 |2 }
13 , ]+ f: w4 n C+ h& j) H
14 ' A6 o1 [8 R6 z3 h% R0 {8 t. N' @6 ~- @
15
, D; S) ^" W$ H3 r9 u7 v/ q, O16
* O) I( v4 ^5 E B3 W! @0 c' }17 4 P1 [3 l* R& K0 l1 K
18
: G2 _. I! ^" ]; l19 ) [, Z! A+ V; X& T- d- U+ ]/ b# a
20 8 r, ?2 Q$ \7 B2 `' p/ u
21
3 t. V4 p e9 x3 _. O8 d; A22 * y! @' t+ ?/ O% x: f$ S
23
( u1 {) \5 ? J, I2 Y. L6 }24 ' U _( j4 d+ f8 ]7 D( B7 B
25
! g4 M) T) y4 z26
- v& e1 V+ P1 l! A. z4 q- C27
! o/ ` J# g9 I n7 p2 j" i28 ' E/ L1 B5 o, e/ \: |' Z# X
29 / T+ Z7 q! s& R5 U/ \* M9 k
30 - U( S8 G% G) C; f
31 . b: P/ X# c4 a6 S, F
32 : T: t3 L$ \& @* P: F+ ]
33
" k* g" a6 P4 r+ f34
% W, k7 U# E, n! x35 ( x" i @) \8 g- W& R
36 : M& q6 X5 X4 b! R+ f: F
37 ! e3 `7 a. f. ]5 @/ S
38 R9 G1 r9 M" |+ o# d
39
6 i+ m7 [ m2 q7 c* W40 + B7 [, g9 |0 k4 g. c: ~
41
5 A! A, J: B3 M* B/ K; P" z8 h+ W42 ) r1 q! w. o2 H* o7 Y
43
, M2 t" A) l0 M5 X# j2 X, h44 ' ]6 G- W" a1 e. N! L# M
45 " M( ^2 {- s) s! M
| server { 7 i) W0 u2 r6 e: @( Z' A
4 c/ @: W; ]2 ~! J listen 80; % L8 c o; q8 l+ b G5 S, @
6 n* c8 G+ c5 n. |/ ` server_name *.abc.com; " f- H8 s" O- R7 Y2 o
% h4 t4 F. j% S4 L; f
if ($http_host ~* "^(.*?)\.abc\.com$") { #正则表达式 6 m1 D( V$ ^1 M8 U$ Y1 }
: ~3 S% x ]1 i6 W/ ~ U& Q' K set $domain $1; #设置变量
6 p% @7 f% V$ Q- s( ] } " o0 Z9 t+ J& M& O% Q$ Q9 G4 Z
5 T$ N0 D9 p: r* X- r- S! `0 K" B9 N9 ^
location / { 0 X. f7 y" G; F b
* [- P0 l. V0 A$ c' S' u
if ($domain ~* "shop") { : i1 B0 S. T- P1 b$ w
! j+ T) K- y5 g I* O, x5 e3 h
# n2 S5 s: S X& S7 Y/ J0 ]* t2 r/ d4 q$ g S8 ]3 k
}
8 Y4 }! o0 |- P1 p- F" W/ ^# r9 E4 s/ f) E0 s
if ($domain ~* "mail") {
% q8 h. e4 f( g5 l6 H: k
1 v0 w$ L" Q! y% R7 G1 _
0 V. q- P9 ]% Q. r" d/ d0 }! T9 ` N! Q4 b- v2 }
}
9 f: t! B2 v h! m) j* m5 O# |. |$ F0 X+ x
c* }& C0 D! M, @, K
tcp_nodelay on; 6 _5 @8 _' N n n
5 V! D M e6 N' y
proxy_set_header Host $host;
7 }5 G9 B) A# C
8 i, b$ I, y: I$ ` proxy_set_header X-Real-IP $remote_addr; 2 ~( ~3 }# \" B; V( N( b
, z) C# P/ F2 `5 ^, o) i, z
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
V* `/ P4 y( V8 }9 m) E1 D5 _5 G4 y: o% ^( P# w
#以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上
" u0 ]6 ~ g4 m. a7 z/ u9 r' Z& L/ W5 I: e
: W- Y( A- S6 w root html; 0 W& Z& B" @0 U" v
5 R8 A2 ^1 `' a& r
index index.html index.htm; #默认情况 " h' f3 `* w2 {: R
: a$ B( `) {( r- X } $ W! |. Q7 y; M: c" l& G% b
& l" V0 d- e9 R) }% h, I7 j( T} # l" w1 W1 M/ R2 b" ^* S( j \( _
/ @& T& n8 W) Y' Y% J8 S |
1 t( A$ C0 {/ i) a/ m7 Y6 i" z# l5 M% d( `+ @6 A
5 w' H; }* q! u- B2 e1 F
- h, ~) v! X, Z# M5 U. h, k w. P7 M: d1 R6 V5 F
$ f8 i$ Y8 m* x# a% q( R$ n- _1 k
- j3 c9 W9 u5 ?& t; K: ]
$ v, a9 y/ m) q# a' p- V$ y |
|