成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

nodejs之http-proxy幾點(diǎn)常見(jiàn)問(wèn)題

gitmilk / 1649人閱讀

摘要:部署到線(xiàn)上卻發(fā)現(xiàn),請(qǐng)求總是指向第一個(gè)二級(jí)域名,其他的二級(jí)域名訪(fǎng)問(wèn)不到。后端配置了后端,不僅僅配置了二級(jí)域名,還配置了二級(jí)目錄,前端部署的服務(wù)也一樣需要二級(jí)目錄。

http-proxy

http-proxy是一個(gè)nodejs的http代理庫(kù),已經(jīng)被webpack-dev-server集成進(jìn)來(lái),做代理使用。原因是在前后端分離大行其道的今天,我們?nèi)绻枰诒镜卣{(diào)后端api接口,不配置hostname的話(huà),必然是一個(gè)跨域的請(qǐng)求。因?yàn)闉g覽器的跨域安全限制,調(diào)取是不通的,所以本地代理就成了一個(gè)本地開(kāi)發(fā)環(huán)境的必選項(xiàng)。

"/saasapi/*": {
    target: "http://ebk.17u.cn",
},

意思呢大概就是把saasapi開(kāi)頭的ajax請(qǐng)求重定向到http://ebk.17u.cn

本地開(kāi)發(fā)沒(méi)有問(wèn)題,線(xiàn)上如果也是用nodejs的服務(wù)器,如果恰巧也配置了代理,部署到線(xiàn)上出現(xiàn)了意想不到的問(wèn)題~

后端nginx配置了反向代理

一個(gè)網(wǎng)站主域名是17u.cn,后端如果部署了多個(gè)api服務(wù),那這樣子他的api服務(wù)可能是這樣子

主域名 二級(jí)域名1 二級(jí)域名2 二級(jí)域名3
17u.cn ebk.17u.cn ebk2.17u.cn ebk3.17u.cn

前端同樣部署了3個(gè)nodejs服務(wù),也同樣配置了3個(gè)代理。部署到線(xiàn)上卻發(fā)現(xiàn),請(qǐng)求總是指向第一個(gè)二級(jí)域名,其他的二級(jí)域名訪(fǎng)問(wèn)不到。

百思不得姐!

后來(lái)仔細(xì)查看http的信息,發(fā)現(xiàn)幾個(gè)服務(wù)的ajax請(qǐng)求發(fā)到服務(wù)器上之后,hostname都是瀏覽器的域名,而nginx的反向代理配置都是根據(jù)hostname來(lái)做轉(zhuǎn)發(fā)的。因?yàn)槲覀兊膆ostname對(duì)于nginx來(lái)說(shuō)都是陌生的,所以就默認(rèn)轉(zhuǎn)發(fā)到默認(rèn)的第一個(gè)服務(wù)上去了。

查了http-proxy配置,哈哈,果然有這種修改的配置,只要稍微改一下就好了。

"/saasapi/*": {
    target: "http://ebk.17u.cn",
    changeOrigin: true
},

changeOrigin: true意思就是把hostname改為和target一致就可以了。這樣后端nginx就可以正常轉(zhuǎn)發(fā)了。

后端配置了cookie Path

后端api,不僅僅配置了二級(jí)域名,還配置了二級(jí)目錄,前端部署的服務(wù)也一樣需要二級(jí)目錄。

api地址就變成這個(gè)樣子:

ebk.17u.cn/saasapi

前端地址:

trans.17u.cn/saas

代理配置做對(duì)應(yīng)調(diào)整

"/saas/saasapi/*": {
    target: "http://ebk.17u.cn",
    changeOrigin: true,
    rewrite: path => path.replace(/^/saas/saasapi/cxy/, "/saasapi")
},

這樣子看起來(lái)很正常吧,但是問(wèn)題出在哪呢?后端把登錄之后設(shè)置的cookie也設(shè)置了path:Path="/saasapi"。

這樣子問(wèn)題就來(lái)了,trans.17u.cn/saas當(dāng)前域名下讀取不到/saasapi下面的cookie,導(dǎo)致前端登錄每次都通過(guò),但就是不能正常調(diào)api,每次調(diào)取都提示沒(méi)有登錄。

有問(wèn)題還是先查文檔。

還是發(fā)現(xiàn)了解決方案

cookiePathRewrite: { "/saasapi": "/saas/saasapi" }

重寫(xiě)cookie路徑就好了,同理如果后端接口指定了cookie的domain,一樣有方案解決

cookieDomainRewrite

還有一些其他rewrite,應(yīng)該都比較好用的。

ps:在解決過(guò)程中,發(fā)現(xiàn)改了也總是不能成功,一度懷疑是庫(kù)的bug。后來(lái)發(fā)現(xiàn)需要清除掉chrome的cookie。

直接點(diǎn)Application -> Cookie:刪除下面的cookie是不行的。清理不掉全部的cookie,需要到Application -> clear storage中,clear site data才可以。最終成功

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96895.html

相關(guān)文章

  • 關(guān)于Nodejs里代理設(shè)置的問(wèn)題

    摘要:解決一個(gè)歷史遺留問(wèn)題博客上線(xiàn)后第一篇關(guān)于的博客就是綁定域名與反向代理是關(guān)于的代理設(shè)置,到現(xiàn)在為止線(xiàn)上幾個(gè)二級(jí)小站也還是在使用那個(gè)模塊,卻怎么也沒(méi)想到,這些小站的一個(gè)共同的遺留問(wèn)題也源自這個(gè)代理模塊問(wèn)題在于用已知的各種方式獲取到的訪(fǎng)問(wèn)者的永 解決一個(gè)歷史遺留問(wèn)題: 博客上線(xiàn)后第一篇關(guān)于Nodejs的博客就是——Nodejs綁定域名與反向代理;是關(guān)于Nodejs的代理設(shè)置,到現(xiàn)在為止線(xiàn)上幾...

    kycool 評(píng)論0 收藏0
  • Nodejs綁定域名與反向代理

    摘要:所有的都不是完整的程序,所有未上線(xiàn)的程序都僅僅是個(gè)作為開(kāi)發(fā)的后起之秀,在現(xiàn)在的國(guó)內(nèi)環(huán)境下,雖比不上的火熱,沒(méi)有那么廣大的群眾基礎(chǔ),蓋不過(guò)的高大上,但基于谷歌引擎的極速,異步與事件模型,無(wú)疑將是開(kāi)發(fā)的重大革新我是一個(gè)小前端,自從知道,就覬覦其 所有的Demo都不是完整的程序,所有未上線(xiàn)的程序都僅僅是個(gè)Demo; Nodejs作為Web開(kāi)發(fā)的后起之秀,在現(xiàn)在的國(guó)內(nèi)環(huán)境下,雖比不上PHP的火...

    thekingisalwaysluc 評(píng)論0 收藏0
  • 如何從零入門(mén)React?實(shí)戰(zhàn)做個(gè)FM應(yīng)用吧

    摘要:面試造航母,工作擰螺絲,新公司面試技術(shù)官要求會(huì)技術(shù)棧。然而公司項(xiàng)目暫時(shí)并沒(méi)有用到,不過(guò)為了提升實(shí)戰(zhàn)經(jīng)驗(yàn),還是在業(yè)余時(shí)間搗騰出一個(gè),以下是項(xiàng)目介紹。前段為了學(xué)習(xí)小程序的開(kāi)發(fā),做了個(gè)小程序名叫口袋吉他,這也是個(gè)人興趣驅(qū)使的開(kāi)發(fā)想法。 面試造航母,工作擰螺絲,新公司面試技術(shù)官要求會(huì)react技術(shù)棧。 問(wèn):有使用過(guò)React么?答:沒(méi),只使用過(guò)Vue。又問(wèn):給你一星期能上手開(kāi)發(fā)么?答:可以(一...

    codecook 評(píng)論0 收藏0
  • 基于webpack的前后端分離開(kāi)發(fā)環(huán)境實(shí)戰(zhàn)

    摘要:背景隨著互聯(lián)網(wǎng)應(yīng)用工程規(guī)模的日益復(fù)雜化和精細(xì)化,我們?cè)陂_(kāi)發(fā)一個(gè)標(biāo)準(zhǔn)應(yīng)用的早已開(kāi)始告別單干模式,為了提升開(kāi)發(fā)效率,前后端分離的需求越來(lái)越被重視,前端負(fù)責(zé)展現(xiàn)交互邏輯,后端負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)接口,基本上也成為了我們?nèi)粘m?xiàng)目分工中的標(biāo)配,但是前后端分離 背景 隨著互聯(lián)網(wǎng)應(yīng)用工程規(guī)模的日益復(fù)雜化和精細(xì)化,我們?cè)陂_(kāi)發(fā)一個(gè)標(biāo)準(zhǔn)web應(yīng)用的早已開(kāi)始告別單干模式,為了提升開(kāi)發(fā)效率,前后端分離的需求越來(lái)越被重...

    soasme 評(píng)論0 收藏0
  • Node.js 搭建本地HTTP服務(wù)器并應(yīng)用node-http-proxy解決ajax跨域問(wèn)題

    摘要:搭建本地服務(wù)器參考了的搭建本地服務(wù)器做轉(zhuǎn)發(fā)使用實(shí)現(xiàn),官方文檔配置服務(wù)器和轉(zhuǎn)發(fā)接口地址判斷如果是接口訪(fǎng)問(wèn),則通過(guò)轉(zhuǎn)發(fā)這里參考的源碼,補(bǔ)充了幾個(gè)字體文件的。 起因:公司的產(chǎn)品更換前端框架,接口的訪(fǎng)問(wèn)原本是通過(guò)nginx配置反向代理實(shí)現(xiàn)的,本地沒(méi)有安裝nginx,就用node.js做一個(gè)。 node.js搭建本地http服務(wù)器參考了shawn.xie的《nodejs搭建本地http服務(wù)器》...

    binaryTree 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<