醫(yī)院掛號(hào)系統(tǒng)中Linux上Nginx反向代理事故
????????今天在學(xué)習(xí)醫(yī)院掛號(hào)系統(tǒng)的時(shí)候發(fā)生一件極其無語的事情,在使用Nginx進(jìn)行反向代理的時(shí)候,視頻老師用的是windows的Nginx本地文件,而我使用的是Linux上的Nginx(你可能想問為什么不直接跟著老師一樣呢,多省事。但是我就不!我已經(jīng)在Linux上安裝了,不想再安裝一遍)就這樣一場(chǎng)3小時(shí)的bug風(fēng)開始了

????????一開始我跟著視頻一點(diǎn)一點(diǎn)配置好,想著也不是很難嘛,我還特意檢查了好幾遍(好習(xí)慣),但是運(yùn)行起來的時(shí)候蒙了,經(jīng)典的老師能行,我不行

我又打開視頻好好瞧了瞧老師的配置:

我看看自己的配置:

我反復(fù)看了多少遍都沒發(fā)現(xiàn)我哪里不一樣了。
隨后又修改了前端的訪問地址
# base api
VUE_APP_BASE_API = 'http://localhost:9001'
????????我想著沒錯(cuò)啊,怎么就是訪問不了呢,反復(fù)重啟前端,后端,Nginx和虛擬機(jī)都不行。心里暗痛:糟了,遇到bug了。關(guān)鍵是以前完全沒有自己動(dòng)過Nginx,都是跟著老師一步一步來的,想著應(yīng)該不會(huì)是Nginx壞了吧。反復(fù)檢查配置后發(fā)現(xiàn),沒錯(cuò)啊,都是一樣的,怎么就是不行呢。上網(wǎng)查解決辦法。網(wǎng)上辦法就是多啊,眼花繚亂,但都是一模一樣沒有任何營養(yǎng),但是有不少好帖還是被我看到了。
????????隨后,我嘗試了,查看Nginx是否啟動(dòng),防火墻是否開啟,給防火墻添加公共端口,在window上訪問Linux的Nginx主頁面(這里的訪問是成功的,表示Nginx是沒問題的),查看端口是否正確分配,網(wǎng)絡(luò)是否通暢(其實(shí)finallshell能連上Linux就已經(jīng)說明通的了,我不知道我為什么還要試一下。)
????????但是都是無功而返,我徹底呆住了,我想要不跟著老師一樣在本地也裝一個(gè)吧,但是我的手好像不太同意。
????????我靜下心來仔細(xì)看看Nginx的nginx.config配置文件。發(fā)現(xiàn)我的虛擬機(jī)的IP地址是192.168.6.100,我的主機(jī)IP是*.*.*.30,配置上寫的是local host。那么到底是Linux的ip還是主機(jī)的ip地址呢。我開始改,一遍一遍的改。
當(dāng)我把localhost全部改成*.*.*.30:

????????經(jīng)過不斷的嘗試我發(fā)現(xiàn)我在window上訪問不了,但是我在Linux上的火狐瀏覽器進(jìn)行http://192.168.169.30:9528訪問的時(shí)候卻是能訪問成功的。
????????疑點(diǎn)出現(xiàn)了:為啥windows上不能訪問,Linux卻可以訪問呢,為什么呢???
????????來理一下思路,主機(jī)訪問http://localhost:9528是前端頁面,然后login登錄的時(shí)候訪問http://localhost:9001/admin/user/login被Linux上的Nginx反向代理根據(jù)后面的參數(shù)進(jìn)行匹配。匹配到http://192.168.169.30:8201。按理來說沒錯(cuò)啊,我的項(xiàng)目就是在本機(jī)上運(yùn)行的所以地址肯定的.30的IP地址。但是現(xiàn)實(shí)就是無法進(jìn)行匹配

還記得之前我跟著老師修改了前端的訪問地址了嗎?就是
#?base api
VUE_APP_BASE_API?= 'http://localhost:9001'
這個(gè)地址在進(jìn)行轉(zhuǎn)發(fā)的時(shí)候出了大問題。
????????老師的Nginx在本機(jī)上運(yùn)行的,所以他寫localhost是沒什么問題的,但是我的Nginx是在Linux上運(yùn)行的,在進(jìn)行發(fā)送請(qǐng)求的時(shí)候localhost映射的地址是*.*.*.30的本機(jī)IP地址,但是我的虛擬機(jī)IP地址是192.168.6.100。問題明了了
????????我想用Nginx,但是Nginx在虛擬機(jī)上,那我的訪問地址應(yīng)該是虛擬機(jī)的IP地址也就是應(yīng)該改成
#?base api
VUE_APP_BASE_API?= 'http://192.168.6.100:9001'
????????這樣才能被Nginx進(jìn)行反向代理
????????其實(shí)當(dāng)我發(fā)現(xiàn)的時(shí)候,我是真的感到羞愧,我本應(yīng)該想到,但是還是浪費(fèi)了3個(gè)多小時(shí)的時(shí)間,你要說這個(gè)問題老師沒提過,那可能是老師的失策,但是我記得老師說過這件事情。
總之問題解決,繼續(xù)學(xué)習(xí)(感謝直播間的小伙伴幫助)