|
|
|
多个服务部署在同一个服务器,使用不同的端口。
# l2 i9 [4 k4 ]5 ]一、思考过程- 如果不想带上端口号,就只能访问 80 或 443 端口。
- 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
- 可以用过子域名区分服务,通过反向代理转发到不同的 Server。/ T! D' d( C/ W' C
二、方案评估- 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
- 使用二级目录区分服务,可行性很大。
- 能通过二级目录名,明确区分服务。
- 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
- 可能导致 url 过长。
- 还是没有什么美观性。/ V) b$ s7 h1 \( `" @
- 使用子域名区分服务,可行性与二级目录相差无几。
- 能通过子域名,明确区分服务。
- 具有一定的美观性。
# b: N" t/ r; a4 p- x' t
# y2 e, V+ H- w: Q% H 三、实践操作使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。 1、找到nginx的配置文件 打开nginx的配置文件,打开 /安装路径/conf/nginx.conf,进行配置 2、修改配置 [backcolor=rgb(255, 255, 255) !important][size=1em]1
7 h F: j- ~4 }' w1 {2 # F7 {1 Q \0 K9 [$ r# B$ u
3 - u* u; M! r3 a
4 1 g: y+ h z0 w
5
9 v' N _4 j- V2 v3 z0 Y. K6
& G. P# w8 M6 U7 \+ K7 9 i4 O! m! T8 }9 Z& f
8
( W+ k: B# G9 G' s2 X% }4 U9
0 Q3 ?4 H' }. V! r7 B10
8 I% s/ K7 K8 h' f11
& U$ x5 F$ R' [9 ~. X, F12 - E' |( f, l, S& U
13
+ c0 }8 ^: S9 p% n7 g7 M! g% r14
: D3 h) Z& B H5 L4 L/ I) x15
/ k2 I+ x7 Q3 e5 }2 g8 V16 2 X3 o" k' J$ O; p0 X
17
, Q6 s% F) L# d' l9 V/ v. p; K3 o18 , z$ R9 a. D# K5 e4 T, d( ]! t
19 - I0 N5 Z: t2 l& C
20 5 Q) Q: H) D. z- T& r1 R
21 ( T: ]; H; M+ @7 C% c2 q
22
: Q" g) K# m+ G7 X23 & p2 S8 E+ k+ c8 S8 h% Y9 [* s
24
; k1 X- e7 l& t25
" S, Q o( J8 e0 r* s4 E9 J# _1 M/ `26 4 S9 r+ ?/ w1 B
27 + Q7 _* i0 W, z$ @# m
28 9 [9 }3 k3 N2 ^( t$ D! f l
29 - a7 X5 D/ n1 Z1 h& p
30
0 d3 m& ^7 H9 \. p* H31 4 @$ A7 Z' G6 ]- s% P
32 9 w$ l! o) Y5 k, J. L F7 U8 K
33
/ H6 |( J; u/ H3 F34
- H. f* y+ z, W8 }" T; P8 {35 4 A% W2 _! j7 h" G5 I: \
36
/ Z' F: J- P/ K3 D2 y37 2 Q+ H3 r( P. h* x
38 5 y* I) R* _- F. ~* D: G
39 " `- ^! ]& }$ {' `
40 3 a0 `% Z, T* t. x. m( U1 f' Y
41
4 r' J$ F5 a- N" Y/ t42
7 w( u/ @4 t0 e( l43 ' Y0 K" v- `5 w) B! w% n
44 1 {9 b4 l+ @. Z4 C' j1 a( |! _
45
! C7 u) l& {4 u( ]/ j. p# u' N | server {
5 P$ |- S# S! B, |. }2 U$ w
- f; f' `; g# n1 n6 x listen 80;
( ^% @' @( \# `* i7 l( K( L; K C+ b3 w
server_name *.abc.com; + x, J5 h- B+ ]3 z7 {5 M
! W) {. Z- A5 O; [, ]+ S' `
if ($http_host ~* "^(.*?)\.abc\.com$") { #正则表达式
. J3 G+ q4 O3 i1 B3 f
8 [" O4 @3 _4 A+ N9 _2 G set $domain $1; #设置变量
- h$ d" l! [/ o' K+ | }
$ |9 L: l9 p, Y0 G: F3 C; r. n6 \! f# X8 I' b& b4 \- q4 ^2 D
: S! o2 p' j0 M: L; I/ T
location / { - `3 V" @$ D8 D$ L- ?1 K
3 [% L5 o e: w! s
if ($domain ~* "shop") {
7 W! }7 W1 z3 G9 `$ X" Q1 K8 ?0 O) E1 R* s+ J+ n
+ R, v0 T" g' T8 I) }4 v4 D) A
. i! J! t: L) E2 q" V4 { }
. m0 a3 h+ Z/ a" m7 M* n U! B. O5 h* R) G7 ^$ L2 Q# o d# g
if ($domain ~* "mail") { 3 o* S% c* ^* V! z
6 b g; S4 ?$ `' q8 Z4 [4 { ?% e, z3 b9 t* Q) [6 ~
4 x/ {& `2 I2 v5 M0 p0 c- c2 Z! G } + f+ c0 e/ J# O0 \! P4 ?7 A
6 ]; P1 w! e% F* g# z% Z5 [$ u" U
9 k2 M. K. g2 V1 R
tcp_nodelay on;
0 t) ]% m0 x' z% s0 s/ c6 \2 q
9 P0 ?) V4 G- I, }0 _$ A proxy_set_header Host $host;
) a# l( r' `; o2 E
$ m& T, O; h$ n proxy_set_header X-Real-IP $remote_addr; 8 g$ \" R. f) [- U
5 X8 T: Y2 U6 t6 j1 U+ z
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
; q' e' X# ]$ @9 u9 t: F# J
2 a/ G/ L" z: E* P5 W& | #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 % C4 b" d# B# D1 R# v6 m3 g# Q# e: }
x* @6 }! Y& d9 b* Q9 r
) X1 \5 g, n A root html;
: L7 [+ b' ] g2 \) b+ w& z3 J& X9 a* _5 j* g4 }
index index.html index.htm; #默认情况
$ m2 z2 M$ o1 \+ P& k( `. K0 f9 G* i* s A5 t8 `0 ^
} ( s- u- t1 L/ b. ?/ j- j0 Q
+ N* `* r! D9 J8 b( i0 e
}
/ T0 ?2 W* ^% l8 O: m 7 o. d) S* i8 s# v, r
| ' F8 K3 H* C$ e7 S, ~8 }) s; @2 c
' ~2 m: Q" z/ l( b" ]; R/ f* F: o3 |, ~( p, z# O6 k: ]: k' w' x4 w6 _
! g' y" M' `0 o2 J$ m7 h: o" k/ W" Z6 j2 {; i9 X! t
( s( G+ ^, y7 |* _/ `! C. t6 j! u8 K9 C* K& F" D( M
4 o. F' _; m0 f+ l& b7 J5 i
4 M( L7 k) Y, y L1 R! v+ z |
|