nuxt部署到生產(chǎn)后舀患,正常點(diǎn)擊跳轉(zhuǎn)沒(méi)問(wèn)題气破。但是刷新頁(yè)面會(huì)出現(xiàn)如下錯(cuò)誤。
connect ECONNREFUSED 127.0.0.1:80 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
我出現(xiàn)的問(wèn)題解決過(guò)程:
我發(fā)現(xiàn)如果頁(yè)面沒(méi)有使用
async asyncData
方法去請(qǐng)求后臺(tái)地址刷新頁(yè)面就沒(méi)問(wèn)題低匙,如果使用了該方法去請(qǐng)求后臺(tái)刷新頁(yè)面就報(bào)上面的異常碳锈。剛開(kāi)始以為是代理的問(wèn)題殴胧。一直在修改
nuxt.config.js
中的proxy
,結(jié)果沒(méi)用竿屹。然后網(wǎng)上有的說(shuō) 使用axios在
async asyncData
向服務(wù)端發(fā)送請(qǐng)求是要填寫完整的http://服務(wù)器ip:端口/api
灸姊,但是我有proxy
代理為什么還要填寫完整的地址呢?-
最后修改
package.json
中的地址- 將
host
設(shè)置為127.0.0.1
或者localhost
后項(xiàng)目啟動(dòng)沒(méi)問(wèn)題碗誉,但是頁(yè)面無(wú)法打開(kāi)父晶。 - 將
host
設(shè)置為服務(wù)器內(nèi)網(wǎng)ip地址
后項(xiàng)目啟動(dòng)沒(méi)問(wèn)題,頁(yè)面正常打開(kāi)尝苇,刷新沒(méi)有async asyncData
方法的頁(yè)面正常,刷新有這個(gè)方法的頁(yè)面就包異常了connect ECONNREFUSED 127.0.0.1:80 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
, - 將
host
設(shè)置為0.0.0.0
后淳玩,頁(yè)面后項(xiàng)目啟動(dòng)正常非竿,頁(yè)面刷新正常。查看進(jìn)程和端口顯示為服務(wù)器內(nèi)網(wǎng)ip:80
也是正常的红柱。
- 將
所以我的解決方案:
在package.json中修改host為0.0.0.0
"config": {
"nuxt": {
"host": "0.0.0.0",
"port": "80"
}
}
關(guān)于0.0.0.0
豹芯、內(nèi)網(wǎng)ip、公網(wǎng)ip铁蹈,127.0.0.1
的講解
其實(shí)只想我們的服務(wù)器本身的ip有很多握牧,公網(wǎng)ip,內(nèi)網(wǎng)ip沿腰,localhost,127.0.0.1习蓬,如果生產(chǎn)環(huán)境中我們的node服務(wù)指定了內(nèi)網(wǎng)ip措嵌,那么利用公網(wǎng)ip訪問(wèn)時(shí)就會(huì)出錯(cuò)。而 0.0.0.0
在服務(wù)器中指的是一個(gè)集合枫慷,包含所有指向自身的ip集合
摘自 https://www.cnblogs.com/sddai/p/9281189.html
127.0.0.1和0.0.0.0地址的區(qū)別
在進(jìn)行網(wǎng)絡(luò)編程時(shí)浪规,會(huì)將服務(wù)器的IP地址設(shè)置為127.0.0.1。然后綁定端口誉裆,開(kāi)始監(jiān)聽(tīng)缸濒。但是對(duì)于服務(wù)器來(lái)說(shuō)元镀,除了127.0.0.1霎桅,還有內(nèi)網(wǎng)IP和公網(wǎng)IP讨永,綁定本地的話只能局域網(wǎng)傳輸,所以,應(yīng)該怎么綁定揭糕?
先復(fù)習(xí)一下IP類型:
IP地址一共分為5類锻霎,即A~E,它們分類的依據(jù)是其net-id所占的字節(jié)長(zhǎng)度以及網(wǎng)絡(luò)號(hào)前幾位吏口。
- A類地址:網(wǎng)絡(luò)號(hào)占1個(gè)字節(jié)冰更。網(wǎng)絡(luò)號(hào)的第一位固定為0。
- B類地址:網(wǎng)絡(luò)號(hào)占2個(gè)字節(jié)蜀细。網(wǎng)絡(luò)號(hào)的前兩位固定為10奠衔。
- C類地址:網(wǎng)絡(luò)號(hào)占3個(gè)字節(jié)。網(wǎng)絡(luò)號(hào)的前三位固定位110归斤。
- D類地址:前四位是1110,用于多播(multicast)生兆,即一對(duì)多通信膝宁。
- E類地址:前四位是1111,保留為以后使用合蔽。
還有些特殊地址:
- 127.0.0.1:回環(huán)地址介返。該地址指電腦本身沃斤,主要預(yù)留測(cè)試本機(jī)的TCP/IP協(xié)議是否正常刃宵。只要使用這個(gè)地址發(fā)送數(shù)據(jù),則數(shù)據(jù)包不會(huì)出現(xiàn)在網(wǎng)絡(luò)傳輸過(guò)程中哮针。
- 10.x.x.x坦袍、172.16.x.x~172.31.x.x、192.168.x.x:這些地址被用做內(nèi)網(wǎng)中蛮放。用做私網(wǎng)地址奠宜,這些地址不與外網(wǎng)相連。
- 255.255.255.255:廣播地址
- 0.0.0.0:這個(gè)IP地址在IP數(shù)據(jù)報(bào)中只能用作源IP地址徘六,這發(fā)生在當(dāng)設(shè)備啟動(dòng)時(shí)但又不知道自己的IP地址情況下榴都。
由此看,兩個(gè)都屬于特殊地址竿音。
IPV4中拴驮,0.0.0.0地址被用于表示一個(gè)無(wú)效的,未知的或者不可用的目標(biāo)宽气。
* 在服務(wù)器中潜沦,0.0.0.0指的是本機(jī)上的所有IPV4地址,如果一個(gè)主機(jī)有兩個(gè)IP地址唆鸡,192.168.1.1 和 10.1.2.1争占,并且該主機(jī)上的一個(gè)服務(wù)監(jiān)聽(tīng)的地址是0.0.0.0,那么通過(guò)兩個(gè)ip地址都能夠訪問(wèn)該服務(wù)序目。
* 在路由中伯襟,0.0.0.0表示的是默認(rèn)路由,即當(dāng)路由表中沒(méi)有找到完全匹配的路由的時(shí)候所對(duì)應(yīng)的路由嘿辟。用途:
- DHCP分配前片效,表示本機(jī)英古。
- 用做默認(rèn)路由,表示任意主機(jī)膨桥。
- 用做服務(wù)端唠叛,表示本機(jī)的任意IPV4地址。
localhost:
只是一個(gè)域名册舞,可以代表任何IP地址障般。默認(rèn)是127.0.0.1 ,在/etc/hosts文件下。
在實(shí)際應(yīng)用中藐石,一般我們?cè)诜?wù)端綁定端口的時(shí)候可以選擇綁定到0.0.0.0定拟,這樣我的服務(wù)訪問(wèn)方就可以通過(guò)我的多個(gè)ip地址訪問(wèn)我的服務(wù)。
比如我有一臺(tái)服務(wù)器株依,一個(gè)外網(wǎng)A,一個(gè)內(nèi)網(wǎng)B性穿,如果我綁定的端口指定了0.0.0.0,那么通過(guò)內(nèi)網(wǎng)地址或外網(wǎng)地址都可以訪問(wèn)我的應(yīng)用吗坚。
127.0.0.1和0.0.0.0地址的區(qū)別