- 积分
- 16844
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
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# P2 1 m K" p* [3 t3 E# a2 \
3
* C1 C7 F5 ^9 m% r( T" C* N4
[3 }. O0 V# ~/ a5 Q5 0 b$ `! ~) |! W+ Q7 f
6
1 @4 w. D# z/ [ f7 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, D11 , g: L% m0 t3 W6 r
12
+ e+ k7 A( R6 L2 I% ~$ n13 # G" S; K! d' A) v% _6 N
14 : u' V: H5 u8 Y. m7 p" U
15
% }3 ]1 ?1 o! s- {8 I16
2 x. N+ v$ t" p+ v5 C7 b17 ! 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 K21
?- y$ Y( g/ m) l/ @9 ]( G22 1 d8 k% A) J' e/ ~* K, B& D
23
) |6 a, p+ f, B' M24
( _) a+ f4 T, C/ F/ T- }" V25
( p0 M9 F& a! x$ x+ s, o26
/ ~+ a& [: d7 K1 ]; W3 U27 4 U* f. L* S3 |: `5 V
28 ; c' i# J7 t- j1 j
29
6 |2 y) P1 N% L' s; g30 7 ^5 i; l8 B6 u0 N" i. l, K5 S
31
4 F- O7 Y( x4 O* n" K5 g32
1 j1 m/ V' ?! f. a; V* J- h33
6 s, G# w) ^7 z0 E8 ^8 t; ^; {" b34
0 e7 m# n) C( P35 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 l39 ' @* \ l4 l: C
40
- s% Y( d* ~" { U. k2 P D41 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
$ 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& 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
|
|