nginx三級(jí)域名跨域和使用rewrite過(guò)程中會(huì)丟失post請(qǐng)求和header里面的內(nèi)容,是目前互聯(lián)網(wǎng)中常常遇到的問(wèn)題,比較頭疼,很多人是在處理過(guò)程中避免使用三級(jí)域名,但當(dāng)實(shí)際情況中遇到了沒(méi)法避免的情況怎么辦?下面就一個(gè)實(shí)際情況中遇到的例子說(shuō)下如何使用nginx的pass_proxy模塊解決三級(jí)域名跨域問(wèn)題。
問(wèn)題:
生產(chǎn)環(huán)境中有一個(gè)a.b.c.com域名需要調(diào)用e.f.g.com這個(gè)文件上傳接口上傳文件,開(kāi)始簡(jiǎn)單實(shí)用nginx rewrite模塊跳轉(zhuǎn)頁(yè)面,但為了保證安全和用戶(hù)體驗(yàn),需要增加用戶(hù)cookie驗(yàn)證及地址欄不跳轉(zhuǎn)域名,經(jīng)過(guò)測(cè)試使用rewirte無(wú)法實(shí)現(xiàn)cookie的傳遞,前端javascript腳本拿到用戶(hù)的參數(shù)傳遞給文件上傳接口,后端文件上傳接口無(wú)法拿到傳遞的參數(shù),因此rewrite方法無(wú)法解決問(wèn)題,實(shí)際過(guò)程中,另外一個(gè)需要解決的問(wèn)題是需要對(duì)請(qǐng)求的url進(jìn)行重定向,比如:前端訪(fǎng)問(wèn)a.b.c.com/images_upload 對(duì)應(yīng)的請(qǐng)求接口是e.f.g.com/images接口。
解決方法:
經(jīng)過(guò)查看nginx官方文檔和多次測(cè)試最終的解決方法如下:
配置a.b.c.com的nginx配置文件,增加pass_proxy配置:
? ? ? ? ? ? location /images_upload{
? ? ? ? ? ? ? ? ?proxy_pass http://e.f.g.com/images;
? ? ? ? ? ? ?}
經(jīng)過(guò)測(cè)試,前端傳遞過(guò)來(lái)的cookie及post參數(shù)均能收到,完美解決此問(wèn)題。
域名頻道是專(zhuān)業(yè)從事域名注冊(cè)、域名備案、域名續(xù)費(fèi)、域名解析等服務(wù)的專(zhuān)業(yè)網(wǎng)站。
注冊(cè)中文域名不但使您的網(wǎng)站可通過(guò)多通道訪(fǎng)問(wèn),也具備企業(yè)的知識(shí)產(chǎn)權(quán)價(jià)值,及時(shí)注冊(cè)中文域名對(duì)企業(yè)品牌有戰(zhàn)略意義。
.com域名是全球最流行的,是讓所有人第一個(gè)想到的建站域名。如果有合適的.com可用,在大多數(shù)情況下應(yīng)該考慮選擇。
想注冊(cè)價(jià)格合理且有保障的國(guó)際域名就到域名頻道平臺(tái),申請(qǐng)鏈接點(diǎn)擊http://m.chouwenlao.cn/domain/