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