今天是劉小愛自學(xué)Java的第142天。
感謝你的觀看,謝謝你。
學(xué)習(xí)計(jì)劃安排,主要解決兩個(gè)問題:
要知道在實(shí)際開發(fā)中會有不同的環(huán)境。
如果不同環(huán)境使用不同的ip去訪問,可能會出現(xiàn)一些問題。所以要統(tǒng)一環(huán)境。
1統(tǒng)一環(huán)境
現(xiàn)在條件有限,不可能說去注冊一個(gè)域名來使用,因此我們可以偽造本地的hosts文件。
首先找到電腦中的hosts文件:
然后再修改本地的hosts為:
這樣的話就能解決一個(gè)問題,以后在瀏覽器上訪問設(shè)定的域名即可,而不是直接使用ip。
一個(gè)域名會被解析為一個(gè)或多個(gè)ip,瀏覽器會在hosts文件中查找域名映射的ip地址。
3SwitchHosts的使用
每次都要去找到host文件,路徑繁瑣,非常麻煩,所以可以使用SwitchHosts來完成:
注意,再次強(qiáng)調(diào):
真正地做項(xiàng)目會去買一個(gè)域名,配置好后,所有人通過該域名訪問即可。
但是現(xiàn)在沒有買域名,所以使用SwitchHosts來自己騙自己,目的是知道有這回事。
雖然域名解決了,但是現(xiàn)在如果我們要訪問,還得自己加上端口9001。
那么問題來了,比如說我們?nèi)ピL問淘寶,它怎么就不需要加上一個(gè)端口號呢?
所以我們希望實(shí)現(xiàn)的是只需要域名就能直接實(shí)現(xiàn)訪問:manage.liuxiaoai.com。
如果不輸入端口,瀏覽器會將其默認(rèn)設(shè)成80,那如何才能把請求轉(zhuǎn)移到9001端口呢?
這里就要用到反向代理工具:Nginx
①nginx作為web服務(wù)器
Web服務(wù)器分2類:
它們的區(qū)分在于:
Nginx不能解析jsp等頁面,只能處理js、css、html等靜態(tài)資源。
但是Nginx的并發(fā)能力要遠(yuǎn)高于Tomcat這些web應(yīng)用服務(wù)器。
所以項(xiàng)目中使用Nginx + Tomcat兩者結(jié)合。
②nginx作為反向代理服務(wù)器
什么是反向代理?
用一臺服務(wù)器代理真實(shí)服務(wù)器,用戶訪問的不再是真實(shí)服務(wù)器而是代理服務(wù)器。
利用反向代理,就可以解決端口問題:
注意:瀏覽器中輸入任意路徑如果沒有指定端口,瀏覽器會默認(rèn)配置端口為80。
在nginx中配置好反向代理的規(guī)則:
根據(jù)不同的請求交給不同的真實(shí)服務(wù)器處理。
當(dāng)請求到達(dá)nginx,nginx會根據(jù)已經(jīng)定義的規(guī)則進(jìn)行請求的轉(zhuǎn)發(fā),從而實(shí)現(xiàn)反向代理。
③nginx安裝和使用
安裝非常簡單,網(wǎng)上一堆資料,不再贅述,我們在本地安裝一臺nginx,目錄結(jié)構(gòu)如下:
nginx可以直接點(diǎn)擊,但是會閃一下導(dǎo)致以為它沒啟動,實(shí)際上它已經(jīng)后臺啟動了。
這樣的壞處在于如果多次點(diǎn)擊會啟動多個(gè)nginx服務(wù)器。
所以一般會通過命令行來啟動,命令如下:
其中在conf文件夾中可以完成配置:
在瀏覽器上輸入manage.liuxiaoai.com,因?yàn)闆]有加端口,瀏覽器會默認(rèn)配置端口80。
而我們在nginx中配置的監(jiān)聽端口又是80,所以會訪問到nginx服務(wù)器。
nginx服務(wù)器就會根據(jù)配置,反向代理到我們設(shè)置本地路徑+9001端口。
現(xiàn)在實(shí)現(xiàn)了域名訪問網(wǎng)站,分析一遍流程:
①瀏覽器準(zhǔn)備發(fā)起請求,訪問對應(yīng)域名,但需要進(jìn)行域名解析。
②本地域名解析,因?yàn)樾薷牧薶osts,所以解析成功,得到地址:127.0.0.1,請求被發(fā)往解析得到的ip,并且默認(rèn)使用80端口。
③nginx監(jiān)聽80端口,因此捕獲這個(gè)請求。
④nginx中配置了反向代理規(guī)則,將manage.liuxiaoai.com代理到了本地ip+9001端口。
⑤后臺系統(tǒng)端口是9001,得到請求并處理,完成后將響應(yīng)返回到nginx服務(wù)器。
⑥nginx將得到的結(jié)果返回到瀏覽器。
謝謝你的觀看。
如果可以的話,麻煩幫忙點(diǎn)個(gè)贊,謝謝你。