激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - Nginx - 如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域

如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域

2020-11-12 23:47沒有名字的博客 Nginx

這篇文章主要給大家介紹了關(guān)于如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

常見的 Nginx 配置允許跨域

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
  listen    11111;
  server_name localhost;
 
  location ~ /xxx/xx {
    if ($request_method = 'OPTIONS') {
      return 204;
    }
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    proxy_pass http://1.2.3.4:5678;
  }
}

指定 Access-Control-Allow-Origin 為 ‘*' ,即為最簡單暴力的允許所有訪問跨域

允許 Cookie

有些場景下需要使用 Cookie,這時 Nginx 需要加一句 add_header Access-Control-Allow-Credentials 'true';,但此時會發(fā)現(xiàn)瀏覽器報錯,說該參數(shù)為 true 時,allow origin 不能設(shè)置為 ‘*‘,如果手動指定了多個域名,那同樣會被瀏覽器提示錯誤,說 allow origin 不能設(shè)置多個,這些是協(xié)議層面的限制

使用 map

在 Nginx 中可以使用 map 得到一個自定義變量,簡單的使用可以參考官方文檔,在上面提到的場景中,可以對請求中的 origin 做一個過濾處理,把符合要求的請求域名放到一個變量中,在設(shè)置 allow origin 時使用該變量就能實(shí)現(xiàn)一個動態(tài)的、多個的允許跨域域名

一個示例配置如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
map $http_origin $allow_origin {
  default "";
  "~^(https?://localhost(:[0-9]+)?)" $1;
  "~^(https?://127.0.0.1(:[0-9]+)?)" $1;
  "~^(https?://172.10(.[\d]+){2}(:[0-9]+)?)" $1;
  "~^(https?://192.168(.[\d]+){2}(:[0-9]+)?)" $1;
}
 
server {
  listen    11111;
  server_name localhost;
 
  location ~ /xxx/xx {
    if ($request_method = 'OPTIONS') {
      return 204;
    }
    add_header Access-Control-Allow-Origin $allow_origin;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    add_header Access-Control-Allow-Credentials 'true';
    proxy_pass http://1.2.3.4:5678;
  }
}

解釋說明:

$http_origin 是 Nginx 的內(nèi)部變量,用于獲取請求頭中的 origin

$allow_origin 是可以自定義的變量名

總結(jié)

到此這篇關(guān)于如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域的文章就介紹到這了,更多相關(guān)map實(shí)現(xiàn)Nginx允許多個域名跨域內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://priesttomb.github.io/技術(shù)/2020/10/24/using-map-to-set-multiple-allow-origins-in-nginx/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色屁屁xxxxⅹ在线视频 | 有色视频在线观看 | 亚洲午夜国产 | 91精品免费在线 | 亚洲国产精品久久久久婷婷老年 | 最新在线黄色网址 | 手机免费看一级片 | 国产v综合v亚洲欧美久久 | 哪里可以看免费的av | 日美av在线 | 视频一区二区国产 | 亚洲一区二区三区视频免费 | 免费一级在线观看 | 日韩aⅴ一区二区三区 | 激情国产视频 | 国产大片中文字幕在线观看 | 亚洲欧美aⅴ | 欧美一级不卡视频 | 国产一区精品视频 | 欧美视频国产精品 | 国产精品高潮99久久久久久久 | 黄色免费大片 | 国产91在线高潮白浆在线观看 | 特色一级黄色片 | 999久久久免费视频 久久精品国产精品亚洲 | chinese中国真实乱对白 | 91亚洲精品一区二区福利 | 久久国产夫妻视频 | 国产精品99久久久久久宅女 | 精精国产xxxx视频在线野外 | 福利在线免费 | 久久精品视频在线免费观看 | 久久视讯| 91嫩草丨国产丨精品入口 | 男女羞羞视频在线观看免费 | 亚洲视频在线观看免费 | 草草久 | 国产免费www | 久久人人爽人人爽人人片av高请 | 91精品国产777在线观看 | wwwav国产 |