亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 詳解proxy_pass根據path路徑轉發時的/問題記錄

詳解proxy_pass根據path路徑轉發時的/問題記錄

熱門標簽:昆明外呼系統 福州呼叫中心外呼系統哪家好 臨汾電銷機器人費用 地圖標注w是什么方向 地圖標注需要提交啥資料入駐 七大洲地圖標注 新鄉人工智能電話機器人加盟 河南省鄭州市地圖標注 400電話申請找哪家公司

在nginx中配置proxy_pass時,如果是按照^~匹配路徑時,要注意proxy_pass后的url最后的/。當加上了/,相當于是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走;如果沒有/,則會把匹配的路徑部分也給代理走。

比如下面設置:

location ^~ /wangshibo/
{
proxy_cache js_cache;
proxy_set_header Host js.test.com;
proxy_pass http://js.test.com/;
}

如上面的配置,如果請求的url是http://servername/wangshibo/test.html會被代理成http://js.test.com/test.html

而如果這么配置

location ^~ /wangshibo/
{
proxy_cache js_cache;
proxy_set_header Host js.test.com;
proxy_pass http://js.test.com;
}

則請求的url是http://servername/wangshibo/test.html會被代理到http://js.test.com/wangshibo/test.html

當然,可以用如下的rewrite來實現/的功能

location ^~ /wangshibo/
{
proxy_cache js_cache;
proxy_set_header Host js.test.com;
rewrite /wangshibo/(.+)$ /$1 break;
proxy_pass http://js.test.com;
}

列舉下面一例

1)第一種配置

[root@BJLX_16_202_V vhosts]# cat ssl-wangshibo.conf
upstream at {
  server 192.168.1.202:8080 max_fails=3 fail_timeout=30s;
}
  
server {
  listen 443;
  server_name www.wangshibo.com;
  ssl on;
  
  ### SSL log files ###
  access_log logs/wangshibo_access.log;
  error_log logs/wangshibo_error.log;
  
### SSL cert files ###
  ssl_certificate ssl/wang.cer;  
  ssl_certificate_key ssl/wang.key;
  
  location /attendance/ {
  proxy_pass http://at;                             //不需要加上"/"          
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_redirect off;
    }
  
}

訪問https://www.wangshibo.com/attendance/和http://192.168.1.202:8080/attendance結果是一致的。

2)第二種配置

[root@BJLX_16_202_V vhosts]# cat ssl-wangshibo.conf
upstream at {
  server 192.168.1.202:8080 max_fails=3 fail_timeout=30s;
}
  
server {
  listen 443;
  server_name www.wangshibo.com;
  ssl on;
  
  ### SSL log files ###
  access_log logs/wangshibo_access.log;
  error_log logs/wangshibo_error.log;
  
### SSL cert files ###
  ssl_certificate ssl/wang.cer;  
  ssl_certificate_key ssl/wang.key;
  
  location / {
  proxy_pass http://at/attendance/;                         //一定要加上"/"            
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_redirect off;
    }  
}

訪問https://www.wangshibo.com和http://192.168.1.202:8080/attendance結果是一致的。

如下配置,想要實現的需求:

192.168.1.27是后端的real server,8080端口是公司的ehr人事系統端口。

又由于該系統涉及到微信接口訪問,即http://ehr.wang.com/attendance和http://ehr.wang.com/app

由于是內部系統,安全考慮,所以要求:

1)登錄ehr人事系統的時候要求使用內網登錄,即http://192.168.1.27:8080,訪問前要先登錄公司VPN
2)登錄微信接口http://ehr.wang.com/attendance和http://ehr.wang.com/app使用外網登錄,即使用解析后域名登錄。
3)訪問http://ehr.wang.com,強制跳轉為https://ehr.wang.com/attendance

[root@BJLX_4_21_P vhosts]# cat ehr.conf
server {
  listen 80;
  server_name ehr.wang.com;
  
  access_log logs/ehr_access.log;
  error_log  logs/ehr_error.log;
 
  return   301 https://$server_name$request_uri;   
}
 
[root@BJLX_4_21_P vhosts]# cat ssl-ehr.conf
upstream ehr {
  server 192.168.1.27:8080 max_fails=3 fail_timeout=30s;
}
 
server {
  listen 443;
  server_name ehr.wang.com;
  ssl on;
 
  ### SSL log files ###
  access_log logs/ehr_access.log;
  error_log logs/ehr_error.log;
 
### SSL cert files ###
  ssl_certificate ssl/wang.cer;   
  ssl_certificate_key ssl/wang.key; 
  #ssl_session_timeout 5m;
 
  location / {
    return 301 https://ehr.wang.com/attendance;
  }
 
  location /attendance/ {
  proxy_pass http://ehr;
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #  proxy_set_header X-Forwarded-Proto https;
  #proxy_set_header X-Forwarded-Proto https;
  proxy_redirect off;
  }
 
  location /app/ {
  proxy_pass http://ehr;
  proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #  proxy_set_header X-Forwarded-Proto https;
  #proxy_set_header X-Forwarded-Proto https;
  proxy_redirect off;
  }
 }

注意:

由于從瀏覽器訪問(http)到源站的real server之間要經過Nginx反向代理層(https)

需要將proxy_set_header X-Forwarded-Proto https;這一行注釋掉,否則上面的配置無效。

如果中間沒有代理層,直接是在real server本機進行nginx的反向代理(即本機nginx反代到本機的8080端口),則這個參數無效注釋(已經過驗證)

HTTP頭域(proxy_set_header)列表與解釋

HTTP 頭域是HTTP協議中請求(request)和響應(response)中的頭部信息,其實就是HTTP通信的操作參數,告訴web服務器和瀏覽器怎樣處理這個通信。

HTTP頭從一個請求信息或者響應信息的第二行開始(第一行是請求行或者響應行),以兩個CR-LF字符組結束(CR:回車符,\r,LF:換行符\n)

而每個HTTP頭是字符串形式的,用冒號分割的鍵值對,多個HTTP頭之間用CR-LF字符組隔開。

某些http頭可以有注釋,例如user-agent,server,via。但這些注釋會被服務器或者瀏覽器忽略IETF組織已經將一些核心的HTTP頭定義在RFC2616規范中,
這些HTTP頭是每個基于HTTP協議的軟件必須實現的,而其他一些更新和擴展的頭域也必須被基于HTTP的軟件實現。當然,各個軟件也可以定義自己的頭域。

另一方面,RFC2616規范中并沒有限制每個HTTP頭的長度,或者限制HTTP頭的數量,但出于性能和安全的考慮,多數服務器都會自己作規定,例如apache2.3
就規定每個HTTP頭不能超過8190個字節,每個請求不能超過100個HTTP頭。

以下來看看發送一個請求(request)時候,可能包含的各個HTTP頭和它的解釋。

標準的請求頭--

Accept: 瀏覽器(或者其他基于HTTP的客戶端程序)可以接收的內容類型(Content-types),例如 Accept: text/plain

Accept-Charset:瀏覽器能識別的字符集,例如 Accept-Charset: utf-8

Accept-Encoding:瀏覽器可以處理的編碼方式,注意這里的編碼方式有別于字符集,這里的編碼方式通常指gzip,deflate等。例如 Accept-Encoding: gzip, deflate

Accept-Language:瀏覽器接收的語言,其實也就是用戶在什么語言地區,例如簡體中文的就是 Accept-Language: zh-CN

Authorization:在HTTP中,服務器可以對一些資源進行認證保護,如果你要訪問這些資源,就要提供用戶名和密碼,這個用戶名和密碼就是在Authorization頭中附帶的,格式是“username:password”字符串的base64編碼,例如:Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==中,basic指使用basic認證方式, QWxhZGRpbjpvcGVuIHNlc2FtZQ==使用base64解碼就是“Aladdin:open sesame”

Cache-Control:這個指令在request和response中都有,用來指示緩存系統(服務器上的,或者瀏覽器上的)應該怎樣處理緩存,因為這個頭域比較重要,特別是希望使用緩 存改善性能的時候,內容也較多,所以我想在下一篇博文中主要介紹一下。

Connection:告訴服務器這個user agent(通常就是瀏覽器)想要使用怎樣的連接方式。值有keep-alive和close。http1.1默認是keep-alive。keep-alive就是瀏覽器和服務器 的通信連接會被持續保存,不會馬上關閉,而close就會在response后馬上關閉。但這里要注意一點,我們說HTTP是無狀態的,跟這個是否keep-alive沒有關系,不要認為keep-alive是對HTTP無狀態的特性的改進。

Cookie:瀏覽器向服務器發送請求時發送cookie,或者服務器向瀏覽器附加cookie,就是將cookie附近在這里的。例如:Cookie:user=admin

Content-Length:一個請求的請求體的內存長度,單位為字節(byte)。請求體是指在HTTP頭結束后,兩個CR-LF字符組之后的內容,常見的有POST提交的表單數據,這個Content-Length并不包含請求行和HTTP頭的數據長度。

Content-MD5:使用base64進行了編碼的請求體的MD5校驗和。例如:Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

Content-Type:請求體中的內容的mime類型。通常只會用在POST和PUT方法的請求中。例如:Content-Type: application/x-www-form-urlencoded

Date:發送請求時的GMT時間。例如:Date: Tue, 15 Nov 1994 08:12:31 GMT

Expect:指示需要使用服務器某些特殊的功能。(這個我不是很清楚)

From:發送這個請求的用戶的email地址。例如:From: user@example.com

Host:被服務器的域名或IP地址,如果不是通用端口,還包含該端口號,例如:Host: www.some.com:182

If-Match:通常用在使用PUT方法對服務器資源進行更新的請求中,意思就是,詢問服務器,現在正在請求的資源的tag和這個If-Match的tag相不相同,如果相同,則證明服務器上的這個資源還是舊的,現在可以被更新,如果不相同,則證明該資源被更新過,現在就不用再更新了(否則有可能覆蓋掉其他人所做的更改)。

If-Modified-Since:詢問服務器現在正在請求的資源在某個時間以來有沒有被修改過,如果沒有,服務器則返回304狀態來告訴瀏覽器使用瀏覽器自己本地的緩存,如果有修改過,則返回200,并發送新的資源(當然如果資源不存在,則返回404。)

If-None-Match:和If-Modified-Since用意差不多,不過不是根據時間來確定,而是根據一個叫ETag的東西來確定。關于etag我想在下一篇博客介紹一下。

If-Range:告訴服務器如果這個資源沒有更改過(根據If-Range后面給出的Etag判斷),就發送這個資源中在瀏覽器缺少了的某些部分給瀏覽器,如果該資源以及被修改過,則將整個資源重新發送一份給瀏覽器。

If-Unmodified-Since:詢問服務器現在正在請求的資源在某個時刻以來是否沒有被修改過。

Max-Forwards:限制請求信息在代理服務器或網關中向前傳遞的次數。

Pragma:好像只有一個值,就是:no-cache。Pragma:no-cache 與cache-control:no-cache相同,只不過cache-control:no-cache是http1.1專門指定的,而Pragma:no-cache可以在http1.0和1.1中使用

Proxy-Authorization:連接到某個代理時使用的身份認證信息,跟Authorization頭差不多。例如:Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 

Range:在HTTP頭中,"Range"字眼都表示“資源的byte形式數據的順序排列,并且取其某一段數據”的意思。Range頭就是表示請求資源的從某個數值到某個數值間的數據,例如:Range: bytes=500-999 就是表示請求資源從500到999byte的數據。數據的分段下載和多線程下載就是利用這個實現的。

Referer:指當前請求的URL是在什么地址引用的。例如在www.a.com/index.html頁面中點擊一個指向www.b.com的超鏈接,那么,這個www.b.com的請求中的Referer就是www.a.com/index.html。通常我們見到的圖片防盜鏈就是用這個實現的。

Upgrade:請求服務器更新至另外一個協議,例如:Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

User-Agent:通常就是用戶的瀏覽器相關信息。例如:User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0

Via:用來記錄一個請求經過了哪些代理或網關才被送到目標服務器上。例如一個請求從瀏覽器出發(假設使用http/1.0),發送給名為 SomeProxy的內部代理,然后被轉發至www.somenet.com的公共代理(使用http/1.1),最后被轉發至目標服務器www.someweb.com,那么在someweb.com中收到的via 頭應該是: via:1.0 someProxy 1.1 www.someweb.com(apache 1.1)

Warning:記錄一些警告信息。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:鎮江 烏海 紅河 臨沂 海口 岳陽 四川 股票

巨人網絡通訊聲明:本文標題《詳解proxy_pass根據path路徑轉發時的/問題記錄》,本文關鍵詞  詳解,proxy,pass,根據,path,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解proxy_pass根據path路徑轉發時的/問題記錄》相關的同類信息!
  • 本頁收集關于詳解proxy_pass根據path路徑轉發時的/問題記錄的相關信息資訊供網民參考!
  • 推薦文章
    你懂的福利视频| 九九热精品免费观看| 午夜家庭影院| 成人免费一级纶理片| 青青久久精品国产免费看| 在线观看成人网 | 日韩免费片| 麻豆系列国产剧在线观看| 欧美1区| 深夜做爰性大片中文| 成人影视在线播放| 国产精品自拍在线观看| 国产成人精品一区二区视频| 欧美激情中文字幕一区二区| 国产视频久久久久| 国产不卡高清在线观看视频| 久久精品店| 欧美激情一区二区三区视频 | 国产视频久久久久| 亚洲天堂一区二区三区四区| 免费国产在线视频| 国产一区二区精品久久91| 国产视频一区二区在线播放| 日韩免费在线视频| 日本特黄特色aa大片免费| 九九九在线视频| 精品久久久久久中文字幕一区| 精品视频在线观看一区二区三区| 国产成人精品综合| 精品久久久久久中文| 你懂的福利视频| 日本在线www| 国产精品1024永久免费视频 | 在线观看成人网 | 毛片的网站| 久久99中文字幕| 日本在线www| 国产视频在线免费观看| 国产视频一区二区三区四区| 欧美一级视| 欧美a级大片| 免费一级片网站| 天天做日日爱夜夜爽| 国产一级生活片| 日韩专区亚洲综合久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 午夜欧美成人久久久久久| 国产麻豆精品视频| 你懂的在线观看视频| 精品久久久久久中文| 九九精品久久| 99久久精品费精品国产一区二区| 国产极品白嫩美女在线观看看| 欧美激情伊人| 精品国产香蕉在线播出 | 麻豆网站在线看| 精品国产亚一区二区三区| 成人在免费观看视频国产| 精品国产亚洲一区二区三区| 美女免费精品高清毛片在线视| 天天色成人| 青青久久精品国产免费看| 国产一级生活片| 韩国毛片 免费| 国产a免费观看| 日本免费看视频| 天天做日日爱夜夜爽| 久久国产精品自线拍免费| 日韩免费片| 四虎论坛| 四虎影视库| 国产精品自拍亚洲| 久久国产影视免费精品| 国产精品自拍亚洲| 黄视频网站在线免费观看| 日韩av成人| 国产综合91天堂亚洲国产| 国产一区二区精品在线观看| 久久99爰这里有精品国产| a级精品九九九大片免费看| 999久久66久6只有精品| 精品国产香蕉在线播出 | 一本伊大人香蕉高清在线观看| 久久国产精品永久免费网站| 精品视频免费在线| 精品视频一区二区三区免费| 欧美18性精品| 日韩免费在线视频| 国产一区二区精品久久91| 日韩免费片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产美女在线一区二区三区| 久久99爰这里有精品国产| 成人影院一区二区三区| 成人免费观看视频| 国产一区免费在线观看| 日韩免费在线视频| 免费国产在线视频| 国产一区二区高清视频| 免费一级生活片| 免费毛片播放| 欧美激情一区二区三区视频 | 欧美激情一区二区三区在线播放| 国产a免费观看| 国产亚洲精品aaa大片| 日本免费看视频| 一级女性全黄久久生活片| 欧美国产日韩一区二区三区| 成人免费观看视频| 午夜激情视频在线观看| 国产一区二区精品久久91| 国产不卡在线观看| 午夜家庭影院| 欧美一级视频免费观看| 精品视频一区二区三区免费| 国产伦精品一区三区视频 | 国产91精品系列在线观看| 成人影院一区二区三区| 毛片的网站| 欧美日本免费| 欧美大片a一级毛片视频| 精品国产亚洲一区二区三区| 青青久久精品国产免费看| 午夜激情视频在线观看| 亚洲不卡一区二区三区在线| 成人a大片在线观看| 午夜在线亚洲男人午在线| 黄视频网站免费| 色综合久久天天综合| 久久国产精品自线拍免费| 国产一区二区精品| 亚洲www美色| 国产美女在线一区二区三区| 亚洲女初尝黑人巨高清在线观看| 精品国产香蕉在线播出 | 亚洲 欧美 成人日韩| 国产高清视频免费观看| 韩国三级香港三级日本三级| 九九干| 久久国产精品自线拍免费| 国产亚洲男人的天堂在线观看| 黄色福利片| 国产麻豆精品免费密入口| 日本特黄特色aa大片免费| 亚洲 欧美 成人日韩| 欧美大片a一级毛片视频| 你懂的在线观看视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 毛片的网站| 国产高清视频免费观看| 国产国产人免费视频成69堂| 精品视频在线看 | 成人免费观看视频| 成人免费观看的视频黄页| 国产精品1024永久免费视频 | 精品在线视频播放| 欧美一级视| 国产一区二区精品| 91麻豆国产福利精品| 精品国产一区二区三区久久久蜜臀| 成人av在线播放| 黄视频网站在线观看| 深夜做爰性大片中文| a级毛片免费全部播放| 精品视频免费观看| 久久精品欧美一区二区| 黄色免费三级| 可以免费在线看黄的网站| 日韩专区在线播放| 国产一区二区精品久久| 九九九在线视频| 日韩在线观看免费完整版视频| 国产91精品一区二区| 欧美1区| 日日夜人人澡人人澡人人看免| 免费一级生活片| 一本伊大人香蕉高清在线观看| 精品国产香蕉在线播出 | 成人免费福利片在线观看| 精品国产一区二区三区精东影业| 亚洲 欧美 成人日韩| 国产成人精品综合| 久久精品欧美一区二区| 国产激情视频在线观看| 可以免费在线看黄的网站| 日本特黄特黄aaaaa大片| 久久成人亚洲| 国产a网| 91麻豆精品国产自产在线观看一区| 国产精品1024永久免费视频 | 免费的黄视频| 成人av在线播放| a级毛片免费全部播放| 国产精品免费久久| 国产精品12| 亚洲www美色| 国产网站免费在线观看| 国产国语在线播放视频| 午夜欧美成人久久久久久|