|
|
|
多个服务部署在同一个服务器,使用不同的端口。
* F/ |: U7 ~3 V2 \一、思考过程- 如果不想带上端口号,就只能访问 80 或 443 端口。
- 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
- 可以用过子域名区分服务,通过反向代理转发到不同的 Server。: x" p. R7 X+ L
二、方案评估- 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
- 使用二级目录区分服务,可行性很大。
- 能通过二级目录名,明确区分服务。
- 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
- 可能导致 url 过长。
- 还是没有什么美观性。
$ g5 {7 h0 c# {( D2 L$ ]. M
- 使用子域名区分服务,可行性与二级目录相差无几。
- 能通过子域名,明确区分服务。
- 具有一定的美观性。' E# b/ H1 K1 t! Z5 d+ T% I
7 E) d1 |% e# { t* ~" j. i 三、实践操作使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。 1、找到nginx的配置文件 打开nginx的配置文件,打开 /安装路径/conf/nginx.conf,进行配置 2、修改配置 [backcolor=rgb(255, 255, 255) !important][size=1em]1
! X7 B' Q$ ?3 S+ ]1 q2
4 D, E- u, A# x, r; G: P3 3 T1 o S, \' [' M8 t1 e
4
. n. ~' I- I- U# l5 5 k. x$ G; d1 S1 ?6 C1 m' n
6
) h6 E3 b1 m9 C5 u5 N7 7 H) [' ?7 z* n' t
8 6 i# r5 p2 |# @, a' Y6 u$ @
9
; L4 |9 F8 k& x( A# E, k" o! Y10
b7 L+ `$ a, G11 " M% {; |) O g
12
2 i: Q/ n q4 q$ R( Q- P13 / f* ~ c7 E) L4 t; e
14
: J' @* y3 g4 {15
& B- _2 e4 h4 u$ V' M# m6 B1 s; x% R16
& `9 O ?) T) T" _17
+ Q: Z* w4 ]5 U+ X8 [4 Q18 U4 C9 ?( E3 l E4 p
19 ) d; v+ n: P- o+ r8 u' W. |4 Z
20 9 I/ ^1 N4 U# x! L
21
5 K! `" H2 O) G" W5 K1 ~22
4 g5 L' P# l$ D/ v9 H$ j: r23 * [9 w* D! ]5 W# K1 G' y& i$ y
24 ' H5 L5 j/ y9 E g* `# H( @
25 ( U* q+ u. b% E( n x1 W' L
26
/ ~- x# X0 z! k! N0 N27
9 n: \ x @: c$ H) {1 P28
9 b! u9 W3 r2 @/ q! M1 S6 O1 m29
" O! J$ c$ N2 ^" Z5 o+ V, k30 + ]8 M% E5 Q6 u/ N7 O5 I8 w5 p! Y
31
' S( `2 Q. F3 @7 |32 ) I0 B" V& j0 [( N, }
33
2 _ c7 s# S6 c* y9 x34
( [- k4 A+ k* i, ]5 ^35 ( O c" t1 P5 i
36 - j* H7 @1 e2 \
37 ) f& y( q! Y6 Q% d2 \
38 4 ^3 E) G# n3 h, @( [8 e9 X
39 9 Z. k, W& Q: z( S# l* p$ ?- U
40
/ r, c" ~$ D0 K; f; d! a' T% M! T41
3 d% s9 \$ T" f4 Z42 * ]/ D6 w3 x3 S; v9 d+ R; i
43
- f/ J+ q5 i3 ]8 N& U% w/ k44
" L1 s+ H% u0 w5 S9 L45
* J. ~7 x# e$ a* k% M | server { 6 p; ^8 n- K! C( { I) ^2 K
$ Q3 d- j5 X7 G* B- Z- M
listen 80; 2 L' h2 Z1 w* o: G9 X7 y
- B9 ]) ^# X8 A5 t7 d% k
server_name *.abc.com; - P; ^1 ^8 s$ r* b( I6 p
& R3 X8 ?, }! V5 C& l
if ($http_host ~* "^(.*?)\.abc\.com$") { #正则表达式 * V; F- d" V" F6 v! e3 U
1 U, r: F( u; v0 Q" [ set $domain $1; #设置变量
1 e+ R3 S* {+ S& V }
% D7 K, g- d h1 n2 S
# H% ]# o% J/ x4 G. T( i' R& C
. T, B0 `7 c5 u0 z/ e8 c5 M location / { ! k0 }: R8 [& G ~: v% }* g. l) p
1 {6 w' B/ X2 x: M1 M if ($domain ~* "shop") {
2 L% r: Z9 b" I+ g, b0 Y4 `# @- U3 B+ E
1 i# o9 B2 r# \4 A
+ e1 Q; y( G0 v3 a+ ^ }
: Q6 x5 \* E' b% u
# d0 {# k7 _0 M" k3 W/ | if ($domain ~* "mail") {
) r& N" q, c* D' Q! F$ O' R8 l2 H" ^0 _
/ J4 m ^: h( o$ Z4 F* t1 V! \
- M6 K6 a9 p- {! R" ? } ' i: ]) J% J4 F+ _/ ]! c
$ Z7 d* [9 o2 f
' I. `" H5 j7 v) Z8 {
tcp_nodelay on; ^# g6 P T; N. N) Z8 Q- T
4 `/ I0 F4 ?" p T3 v2 g; T# o+ C
proxy_set_header Host $host;
" \* V; K i z' [( J- {0 Q8 m3 H$ x; B* w) G3 t* p: I/ P
proxy_set_header X-Real-IP $remote_addr; ' H" W: V7 f$ ^! g- y- b c6 }2 A
6 c# p- P5 J/ H/ Q z
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; % C% E8 o2 m. P& C9 ^) D2 N
5 t% F0 m* v& |5 L% A' m #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 ' c7 C6 \/ Y! J; E. s$ P( \0 i$ t! R% @
: i" ]9 `3 ?) U% i. _/ M: Q: ^
' T7 \+ M3 m3 q I- B% t root html; 1 N p" y' z9 }% |- R7 N9 n
9 I+ a$ g6 F/ n# t* M8 |4 T& h
index index.html index.htm; #默认情况 $ a0 f# d* d& @) R P" A" U+ u
$ q* d% ~2 ], V, [! F: ~ } / A$ T6 O F# O6 O( g, G; Q
. D( G& A6 G L: e; `! D
} * B, Z; Y- w/ y
/ H3 t7 V" A7 G, D
| - M+ P9 x# ]/ H3 z
$ W; r o, z1 p$ t0 h
9 _, C; K! ?/ m7 n# T1 x- o: i0 Q% W2 y) L
: m' ~& y8 u! W% h- Q( w
" _; ?: B* i, L5 n3 T% E) w5 d0 z9 X: `1 z: m6 o! f' t1 g
+ F2 j8 K" J6 `/ ^
$ V, Y# Z8 z0 n4 M) }+ M3 ] |
|