摘要:反向代理服務器對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。使用反向代理可能訪問網(wǎng)頁相對于之前響應會比較慢
標簽: Nginx,跨域
問題在之前的分享的跨域資源共享的文章中,有提到要注意跨域時,如果要發(fā)送Cookie,Access-Control-Allow-Origin就不能設為*,必須指定明確的、與請求網(wǎng)頁一致的域名。在此次項目開發(fā)中與他人協(xié)作中就遇到此類問題。
解決思路一般來說,與后臺利用CORS跨域資源共享將Access-Control-Allow-Origin設置為訪問的域名即可,這個需要后臺的配合,且有些瀏覽器是不支持的。
基于與合作方后臺的配合,利用nginx方向代理來滿足瀏覽器的同源策略來實現(xiàn)跨域
實現(xiàn)方法 反向代理概念反向代理(Reverse Proxy)方式是指以代理服務器來接受Internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡上的服務器;并將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現(xiàn)為一個服務器。反向代理服務器對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。客戶端向反向代理的命名空間(name-space)中的內(nèi)容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉(zhuǎn)交請求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。利用nginx反向代理實現(xiàn)跨域的步驟
去nginx官網(wǎng)下載包搭建nginx環(huán)境
修改nginx的配置文件,找到ngixn.conf文件,修改相關配置
http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8000; #監(jiān)聽8000端口,可以改成其他端口 server_name localhost; # 當前服務的域名 location /wili/api/ { proxy_pass 你的接口地址; #添加訪問路徑錄為/will/api的代理配置 proxy_http_version 1.1; } location / { proxy_pass http://localhost:8001; proxy_http_version 1.1; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
配置的解釋:
由配置信息可知,我們讓nginx監(jiān)聽localhost的8000端口,網(wǎng)站A與網(wǎng)站B的訪問都是經(jīng)過localhost的8000端口進行訪問。
我們特殊配置了一個"/will/api"的訪問,使以"will/api”開頭的地址都轉(zhuǎn)到""進行處理。
訪問地址修改
既然我們已經(jīng)配置了nginx,那么所有的訪問都要走nginx,而不是走網(wǎng)站原本的地址(A網(wǎng)站localhost:8001,B網(wǎng)站——"你的接口地址")。所以要修改A網(wǎng)站中的請求接口換成http://localhost:8000/wili/api/。接下來啟動nginx,訪問配置的8000即可
==需要注意的一點是nginx啟動可能會沖突端口造成啟動不成功,可在任務管理器查看是否啟動成功。==
瀏覽器跨域的解決方式有很多種:
jsonp 需要目標服務器配合一個callback函數(shù)
CORS需要服務器設置header:Access-Control-Allow-Origin
nginx反向代理 這個方法一般很少有人提及,但是他可以不用目標服務器配合,不過需要你搭建一個中轉(zhuǎn)nginx服務器,用于轉(zhuǎn)發(fā)請求。(使用反向代理可能訪問網(wǎng)頁相對于之前響應會比較慢)
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/100289.html
摘要:反向代理服務器對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。使用反向代理可能訪問網(wǎng)頁相對于之前響應會比較慢 標簽: Nginx,跨域 問題 在之前的分享的跨域資源共享的文章中,有提到要注意跨域時,如果要發(fā)送Cookie,Access-Control-Allow-Origin就不能設為*,必須指定明確的、與請求網(wǎng)頁一致的域名。在此次項目開發(fā)中與他人協(xié)作中就遇到...
摘要:反向代理服務器對于客戶端而言它就像是原始服務器,并且客戶端不需要進行任何特別的設置。使用反向代理可能訪問網(wǎng)頁相對于之前響應會比較慢 問題 在之前的分享的跨域資源共享的文章中,有提到要注意跨域時,如果要發(fā)送Cookie,Access-Control-Allow-Origin就不能設為*,必須指定明確的、與請求網(wǎng)頁一致的域名。在此次項目開發(fā)中與他人協(xié)作中就遇到此類問題。 showImg(h...
摘要:二跨域解決方案原理利用標簽沒有跨域限制的漏洞,網(wǎng)頁可以得到從其他來源動態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實現(xiàn)跨域,是最簡單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會碰到請求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請猛戳github博客,紙上得來終覺淺,建議動手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...
閱讀 991·2021-11-23 09:51
閱讀 3479·2021-11-22 12:04
閱讀 2723·2021-11-11 16:55
閱讀 2941·2019-08-30 15:55
閱讀 3232·2019-08-29 14:22
閱讀 3358·2019-08-28 18:06
閱讀 1247·2019-08-26 18:36
閱讀 2132·2019-08-26 12:08