1. 程式人生 > >使用反向代理的http的請求流程

使用反向代理的http的請求流程

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的請求流程