欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Nginx反向代理解決跨域問(wèn)題詳解

 更新時(shí)間:2019年02月01日 10:15:10   作者:suan_suan  
這篇文章主要介紹了利用Nginx反向代理解決跨域問(wèn)題詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

問(wèn)題

在之前的分享的跨域資源共享的文章中,有提到要注意跨域時(shí),如果要發(fā)送Cookie,Access-Control-Allow-Origin就不能設(shè)為*,必須指定明確的、與請(qǐng)求網(wǎng)頁(yè)一致的域名。在此次項(xiàng)目開(kāi)發(fā)中與他人協(xié)作中就遇到此類問(wèn)題。

解決思路

  1. 一般來(lái)說(shuō),與后臺(tái)利用CORS跨域資源共享將Access-Control-Allow-Origin設(shè)置為訪問(wèn)的域名即可,這個(gè)需要后臺(tái)的配合,且有些瀏覽器是不支持的。
  2. 基于與合作方后臺(tái)的配合,利用nginx方向代理來(lái)滿足瀏覽器的同源策略來(lái)實(shí)現(xiàn)跨域

實(shí)現(xiàn)方法

反向代理概念

反向代理(Reverse Proxy)方式是指以代理服務(wù)器來(lái)接受Internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器;并將從服務(wù)器上得到的結(jié)果返回給Internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。反向代理服務(wù)器對(duì)于客戶端而言它就像是原始服務(wù)器,并且客戶端不需要進(jìn)行任何特別的設(shè)置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內(nèi)容發(fā)送普通請(qǐng)求,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請(qǐng)求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。

利用nginx反向代理實(shí)現(xiàn)跨域的步驟

nginx官網(wǎng)下載包搭建nginx環(huán)境

修改nginx的配置文件,找到ngixn.conf文件,修改相關(guān)配置

http {
 include  mime.types;
 default_type application/octet-stream;

 sendfile  on;

 server {
  listen  8000; #監(jiān)聽(tīng)8000端口,可以改成其他端口
  server_name localhost; # 當(dāng)前服務(wù)的域名

  location /wili/api/ {
    proxy_pass http://chick.platform.deva.wili.us/api/; #添加訪問(wèn)路徑錄為/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)聽(tīng)localhost的8000端口,網(wǎng)站A與網(wǎng)站B的訪問(wèn)都是經(jīng)過(guò)localhost的8000端口進(jìn)行訪問(wèn)。
  • 我們特殊配置了一個(gè)"/will/api"的訪問(wèn),使以"will/api”開(kāi)頭的地址都轉(zhuǎn)到"
  • 訪問(wèn)地址修改

既然我們已經(jīng)配置了nginx,那么所有的訪問(wèn)都要走nginx,而不是走網(wǎng)站原本的地址(A網(wǎng)站localhost:8001,B網(wǎng)站http://chick.platform.deva.wili.us/api/)。所以要修改A網(wǎng)站中的請(qǐng)求接口換成http://localhost:8000/wili/api/。接下來(lái)啟動(dòng)nginx,訪問(wèn)配置的8000即可


需要注意的一點(diǎn)是nginx啟動(dòng)可能會(huì)沖突端口造成啟動(dòng)不成功,可在任務(wù)管理器查看是否啟動(dòng)成功。

總結(jié)

瀏覽器跨域的解決方式有很多種:

  1. jsonp 需要目標(biāo)服務(wù)器配合一個(gè)callback函數(shù)
  2. CORS需要服務(wù)器設(shè)置header:Access-Control-Allow-Origin
  3. nginx反向代理 這個(gè)方法一般很少有人提及,但是他可以不用目標(biāo)服務(wù)器配合,不過(guò)需要你搭建一個(gè)中轉(zhuǎn)nginx服務(wù)器,用于轉(zhuǎn)發(fā)請(qǐng)求。(使用反向代理可能訪問(wèn)網(wǎng)頁(yè)相對(duì)于之前響應(yīng)會(huì)比較慢)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nginx常用命令和部署詳解以及實(shí)戰(zhàn)案例示范

    Nginx常用命令和部署詳解以及實(shí)戰(zhàn)案例示范

    這篇文章主要介紹了Nginx的常用命令和在不同環(huán)境下的部署方法,包括在CentOS和Docker中部署Nginx,并詳細(xì)說(shuō)明了如何配置Nginx以實(shí)現(xiàn)實(shí)時(shí)刷新數(shù)據(jù)和數(shù)據(jù)分析系統(tǒng)的場(chǎng)景,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短

    nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短

    本文主要介紹了nginx如何設(shè)置服務(wù)器響應(yīng)時(shí)間長(zhǎng)短,主要介紹了兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過(guò)程

    Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過(guò)程

    今天通過(guò)本文給大家分享Ubuntu使用nginx搭建webdav文件服務(wù)器的詳細(xì)過(guò)程,在這小編提示大家在安裝nginx時(shí)需要先安裝nginx-full,具體安裝方法跟隨小編一起通過(guò)本文學(xué)習(xí)下吧
    2021-05-05
  • 詳解Nginx如何配置Web服務(wù)器的示例代碼

    詳解Nginx如何配置Web服務(wù)器的示例代碼

    這篇文章主要介紹了詳解 Nginx如何配置Web服務(wù)器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • nginx使用sticky基于cookie的會(huì)話保持方式

    nginx使用sticky基于cookie的會(huì)話保持方式

    這篇文章主要介紹了nginx使用sticky基于cookie的會(huì)話保持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 解析Nginx中的日志模塊及日志基本的初始化和過(guò)濾配置

    解析Nginx中的日志模塊及日志基本的初始化和過(guò)濾配置

    ngx_errlog_module是Nginx中用來(lái)管理日志的模塊,解析Nginx中的日志模塊及日志基本的初始化和過(guò)濾配置,需要的朋友可以參考下
    2016-07-07
  • Nginx 禁止IP訪問(wèn)如何實(shí)現(xiàn)

    Nginx 禁止IP訪問(wèn)如何實(shí)現(xiàn)

    這篇文章主要介紹了Nginx 禁止IP訪問(wèn)如何實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 使用Nginx來(lái)共享文件的詳細(xì)教程

    使用Nginx來(lái)共享文件的詳細(xì)教程

    有時(shí)我們想共享電腦上的某些文件,一個(gè)比較方便的做法是,開(kāi)一個(gè)HTTP服務(wù),指向文件所在的目錄,這次我們用 nginx 來(lái)實(shí)現(xiàn)這個(gè)需求,本文將通過(guò)代碼示例一步步教你使用Nginx來(lái)共享文件,需要的朋友可以參考下
    2025-01-01
  • 生產(chǎn)環(huán)境部署Nginx服務(wù)器雙機(jī)熱備部署keepalived的步驟(多種模式教程)

    生產(chǎn)環(huán)境部署Nginx服務(wù)器雙機(jī)熱備部署keepalived的步驟(多種模式教程)

    今天演示下生產(chǎn)環(huán)境keepalived的部署方式,安裝模式有很多,比如說(shuō)主備模型和雙主模型,主備分:搶占模式 和 非搶占模式,對(duì)Nginx keepalived 雙機(jī)熱備部署相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Nginx(PHP/fastcgi)的PATH_INFO問(wèn)題

    Nginx(PHP/fastcgi)的PATH_INFO問(wèn)題

    PATH_INFO是一個(gè)CGI 1.1的標(biāo)準(zhǔn),經(jīng)常用來(lái)做為傳參載體. 比如, 我們可以使用PATH_INFO來(lái)代替Rewrite來(lái)實(shí)現(xiàn)偽靜態(tài)頁(yè)面, 另外不少PHP框架也使用PATH_INFO來(lái)作為路由載體.
    2011-08-08

最新評(píng)論