使用反向代理的http的請求流程
阿新 • • 發佈:2017-08-12
line pst 訪問項目 例如 項目部 本地host 所在 png 工作
此文章主要為剛接觸反向代理的小夥伴梳理請求流程,以便更好的理解反向代理是何時工作的
流程
- 由於瀏覽器是有緩存的,所以本地的hosts文件的信息也會在瀏覽器端緩存
- 當客戶端發起一個新的請求(例如:輸入的是域名www.uxuexi.com),請求會先在瀏覽器中查看是否有緩存的hosts信息,如果有直接拿來使用,如果沒有會去使用所在操作系統的hosts文件的信息
- 在hosts文件上如果匹配到所輸入的域名,那麽此時請求就會被轉發到對應的ip主機上;如果在本地hosts文件中沒有匹配到,那麽就會去公網DNS去匹配
- 請求跳到對應的ip主機後(A服務器),一般這個主機應該是nginx所在的主機,由於域名沒有端口默認的就是80端口,所以此時nginx中如果配置了攔截80端口,那麽這個請求就會被nginx給監聽到,然後進入nginx中相應配置文件中
- 進入到nginx的相應的配置文件後會和對應的server-name匹配,然後找到匹配到的server-name對應的代理地址,在通過代理地址的名稱找到對應的upstream
- 由於upstream中有響應的ip地址(B服務器)和端口,所以此時請求就會被轉發到upstream的對應的ip主機(B服務器)上,
- 請求到達新的ip主機(B服務器)後,由於這個轉發是帶有端口的,所以這個端口就會被此主機(B服務器)上的應用程序監聽到,比如tomcat
- 達到tomcat服務後有兩種訪問項目部署資源的情況:
- 項目部署位置不是tomcat默認位置
- 項目部署位置是tomcat默認部署位置
如果這種情況,一般我們在輸入域名或者直接輸入ip地址端口的時候,後面還要加上項目名,這個項目名非常重要,因為tomcat要用這個名字去tomcat默認放置項目資源的文件夾下匹配資源。
- 此時如果你的項目沒有問題,你應該能夠看到你想要的內容了
使用反向代理的http的請求流程