一、实现原理 & F* R9 K3 ~6 \+ v G
反向代理需要用到nginx。反向代理是在服务器端进行处理。首先修改hosts文件,将域名指向开发者的电脑本身,把自己伪装成服务端,再通过nginx对不同的请求进行转发,把静态资源指向开发者本地电脑的资源,将接口指向实际的服务器。 # _( }4 Q& r. E" w0 } L D L6 X) `% u2 F; o' |6 {
可以理解为把饭店设置在了黑社会的楼下,去楼下买酱排骨饭的时候,饭店米饭自己做,酱排骨则偷偷跑去别的饭店买。9 G& N: s( m. E0 ]
' l$ ?9 U8 Z; J. e }. n二、程序运行过程7 r) w; v# }: p$ i
浏览器访问页面,假设访问淘宝页面:taobao.com/index.html - V# M: {2 {1 | $ Y5 B! ?; m( }taobao.com域名解析先经过hosts文件配置,发现taobao.com域名指向127.0.0.1,则向本机发起请求。" n' ~: C! e5 A* J( _* g
5 Q+ F W) M( k1 ]. P* q, Wnginx接收到taobao.com/index.html请求,根据nginx的配置,将把这个请求转发给127.0.0.1:3000。2 x- B, n. q& {6 d, z+ Y
% i/ i9 t, y. B8 l浏览器运行index.html文件,发起taobao.com/api/getNew请求% p% U* R" L0 A$ b$ |
# E4 A9 l. ?! g+ g9 A# V9 H
nginx接收到taobao.com/api/getNew请求请求,根据nginx的配置,将把这个请求转发给真正的淘宝服务器中。 ( B, Z7 w7 |0 ]- a4 M+ g1 r W1 O$ ?) t" O
淘宝服务器将数据返回给nginx,再返回给浏览器执行。