- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
多个服务部署在同一个服务器,使用不同的端口。 - F, z7 \$ H4 }) g; [
一、思考过程- 如果不想带上端口号,就只能访问 80 或 443 端口。
- 可以用过二级目录区分服务,通过反向代理转发到不同的 Server。
- 可以用过子域名区分服务,通过反向代理转发到不同的 Server。7 m X) m4 E; Z. j
二、方案评估- 对于不带端口号访问,以我目前的经验来看,找不到其它更好的方法,只能使用 80 或 443 端口。
- 使用二级目录区分服务,可行性很大。
- 能通过二级目录名,明确区分服务。
- 可是和直接使用端口号差别不大,只是把辨别服务的方法,从端口号变成了二级目录名。
- 可能导致 url 过长。
- 还是没有什么美观性。, L9 j, h6 }/ W3 z$ Z2 F
- 使用子域名区分服务,可行性与二级目录相差无几。
- 能通过子域名,明确区分服务。
- 具有一定的美观性。
w6 L* R4 N3 r, V 2 `3 L( T* g0 `8 _& Q5 g" o7 t0 k
三、实践操作使用子域名区分服务 的方式,然后使用 nginx 做反向代理,分发到不同的端口。 1、找到nginx的配置文件 打开nginx的配置文件,打开 /安装路径/conf/nginx.conf,进行配置 2、修改配置 [backcolor=rgb(255, 255, 255) !important][size=1em]1 - w' [: m, o. V+ M- |+ v5 ^6 p4 Y
2 - v: e& I- s/ ~( p$ q |! X2 F4 Y
3 & G9 n0 K3 N+ [1 y) ]9 U- ]$ M
4
6 O9 I. J) ^2 Y' S2 \! s8 B5
' v0 W: s; m% @0 }4 _: |6 8 U: }. @$ Y& K1 L) O4 X2 e" H8 h
7
. c5 a9 D! d. X3 f2 v. C* W0 R8
, B3 p1 a. ^# R! \! L9
! P; u2 O. D+ c- N10 # i1 A+ B# D% D b9 z5 Y+ A
11 " |6 H" d8 H6 [+ C4 W& v2 Y- [
12
! N5 E+ U- U6 {. x1 |" v13
/ t7 x, k. M5 X9 ?4 |! B7 t14
( j) G: T: |5 P x+ \15
- m2 Y2 x* d( t4 N* P( e! J16 ( ]$ t' C8 G- m3 k! d- }8 e
17 ! S( n5 t' d+ u! B. O9 G
18
: Y- [( Y% \! G2 t. v4 I: ^19 ; z/ |! H* E5 Y9 Y; e D: R
20
. { p) L" B% _* J. o0 P: |21
/ z) O, i1 B" Y. E7 ?; a22 ; u' ^3 Z8 N* \
23
8 z- _( |+ ]/ `, }5 U24
" \3 Y3 X0 z5 r; f' P25
3 P# p+ B) N5 J3 \; b1 p! `0 l( H! a" i26 " A4 ]: O* |( Y& H
27 ' @7 u7 i2 k9 x, Y$ ^
28
- s) R. J. h( y) _& {* X4 m/ }29 + I$ [; V7 G, l0 M# F4 U% R
30 2 c' p& w% j( g8 m( A3 e& R
31
1 m0 e: W$ x3 r32
: h, R& k, J3 y8 {! {) A, D, t33 ' [* E( i+ m/ G: F- D) d3 u1 H
34 9 d9 \- ]8 a# ~2 V, \& @7 d
35
" ?' @/ c$ }5 g, u: W1 c36 0 q" z2 Y1 t& l) k0 {
37 ) [( `/ d' N2 l; Y# \7 y
38 ) Q2 p! g) Q3 v2 K3 ~7 l$ f, k& u
39 , F! z# F* H4 B* `! W
40
, t& N) Y1 G v ]" |, |; X41 F' n0 ?$ _' o' O& O. `! j
42 2 i/ g) u. x) x. z8 \0 `
43 5 B8 P) N1 w& m& {
44
' Y3 A& ~& e" W8 X$ U3 ]7 A; P* B45 * }* g. F( G) I6 Y
| server { 2 |- ~; \- Z! c+ B X, S. A5 [* t
! r( [9 S; `) N( R
listen 80;
. X% y/ T. h2 d' u4 m/ R |* W) S9 ]
server_name *.abc.com;
! Z: U2 Q' K5 v* L6 E# m A0 U. Q# g# @# g
if ($http_host ~* "^(.*?)\.abc\.com$") { #正则表达式 9 q$ a! ?/ }' T0 C: @
* X Z+ [/ O% ~* B9 ^# y4 Y8 b5 Z
set $domain $1; #设置变量
( I* |4 c9 ^2 r3 R/ Z } 5 }0 Z, o* f% n( y7 B' g' r5 i
A2 P# u) m+ x2 F: L9 a$ I, X4 _3 Y
location / { 8 I6 d6 q) @* [ s
- h0 w; \( t, D" A3 z' x
if ($domain ~* "shop") {
) }- a$ l9 d6 x$ L8 G: c& E3 e* v$ @, [7 a- t! R) {% q1 T
. b7 M9 ^' n1 d8 k7 j, H2 ?
3 y& A4 }; {$ H( d O+ p4 v } ( b& |7 q* r( s' K" T9 G
0 s: ~2 F/ Q/ n if ($domain ~* "mail") { 1 G2 i, D# X1 ]1 X
/ z0 o2 ?, O$ X3 V# ^ ~ _# C
' K7 b! Q6 S. r3 M" q3 k5 C6 U, ?3 e$ e5 l K& e
} ( w' \- a6 ?$ ^7 E, k b+ i
3 Z4 }2 c* l; A4 @2 \( _* M/ t2 |# S% \
1 B/ j8 R8 n" s5 w6 {
tcp_nodelay on;
4 X. F$ X( h+ g0 D0 G. Q- T i K- z D9 p* u1 e7 l
proxy_set_header Host $host;
8 r+ a* g4 D) j0 |7 }0 y4 z- B1 A: U! Q. u5 q7 [; o
proxy_set_header X-Real-IP $remote_addr;
" `0 s h$ u) R! {. L' x: o4 B* k3 p+ U9 h; @
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; , j' F, K, e7 a; K* A
: b2 u5 a" w. a8 b# i! m$ M #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 ) ?: {4 O# |+ Z% y2 ~
0 Q3 `& B$ u$ }8 t1 _( C/ G
" C* Y; k, Y: x1 c$ I1 X root html;
/ e$ C5 J- H3 s8 a, A4 s5 ?) Z/ V2 C s8 t$ P1 r5 Q- N
index index.html index.htm; #默认情况 0 V$ g. X- Y9 S+ J9 ^( N; G" C" A
1 c4 D4 h2 S2 U5 @1 ~
}
$ Q3 u2 v3 N' k2 q
# b* D) o5 ^& ?" i$ d} $ m& s8 G# K8 L5 ]4 r
) B" B5 ?0 v$ x8 I, K4 ~ | ! q* J8 S) a9 ?8 q# N, D
& m4 Q2 X& K. B' ~ G3 R. |
( [- y9 X/ r/ n1 ^: c3 G
( U( `4 Z0 K& V
# r+ T& X; f2 t8 g8 C4 m4 b' ]5 }" X' \& N; ~( A
2 L2 t0 H& P7 U6 v- L
; j* t8 c. e% H% P+ o( `
! L1 d3 Z( e- }, b
|
|