国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 服務(wù)器 > Web服務(wù)器 > 正文

詳解proxy_pass根據(jù)path路徑轉(zhuǎn)發(fā)時(shí)的"/"問(wèn)題記錄

2024-09-01 13:55:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

比如下面設(shè)置:

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

如上面的配置,如果請(qǐng)求的url是http://servername/wangshibo/test.html會(huì)被代理成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;}

則請(qǐng)求的url是http://servername/wangshibo/test.html會(huì)被代理到http://js.test.com/wangshibo/test.html

當(dāng)然,可以用如下的rewrite來(lái)實(shí)現(xiàn)/的功能

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.confupstream 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;    }  }

訪問(wèn)https://www.wangshibo.com/attendance/和http://192.168.1.202:8080/attendance結(jié)果是一致的。

2)第二種配置

[root@BJLX_16_202_V vhosts]# cat ssl-wangshibo.confupstream 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;    }  }

訪問(wèn)https://www.wangshibo.com和http://192.168.1.202:8080/attendance結(jié)果是一致的。

如下配置,想要實(shí)現(xiàn)的需求:

192.168.1.27是后端的real server,8080端口是公司的ehr人事系統(tǒng)端口。

又由于該系統(tǒng)涉及到微信接口訪問(wèn),即http://ehr.wang.com/attendance和http://ehr.wang.com/app

由于是內(nèi)部系統(tǒng),安全考慮,所以要求:

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

[root@BJLX_4_21_P vhosts]# cat ehr.confserver {  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.confupstream 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;  } }

注意:

由于從瀏覽器訪問(wèn)(http)到源站的real server之間要經(jīng)過(guò)Nginx反向代理層(https)

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

如果中間沒有代理層,直接是在real server本機(jī)進(jìn)行nginx的反向代理(即本機(jī)nginx反代到本機(jī)的8080端口),則這個(gè)參數(shù)無(wú)效注釋(已經(jīng)過(guò)驗(yàn)證)

HTTP頭域(proxy_set_header)列表與解釋

HTTP 頭域是HTTP協(xié)議中請(qǐng)求(request)和響應(yīng)(response)中的頭部信息,其實(shí)就是HTTP通信的操作參數(shù),告訴web服務(wù)器和瀏覽器怎樣處理這個(gè)通信。

HTTP頭從一個(gè)請(qǐng)求信息或者響應(yīng)信息的第二行開始(第一行是請(qǐng)求行或者響應(yīng)行),以兩個(gè)CR-LF字符組結(jié)束(CR:回車符,/r,LF:換行符/n)

而每個(gè)HTTP頭是字符串形式的,用冒號(hào)分割的鍵值對(duì),多個(gè)HTTP頭之間用CR-LF字符組隔開。

某些http頭可以有注釋,例如user-agent,server,via。但這些注釋會(huì)被服務(wù)器或者瀏覽器忽略IETF組織已經(jīng)將一些核心的HTTP頭定義在RFC2616規(guī)范中,
這些HTTP頭是每個(gè)基于HTTP協(xié)議的軟件必須實(shí)現(xiàn)的,而其他一些更新和擴(kuò)展的頭域也必須被基于HTTP的軟件實(shí)現(xiàn)。當(dāng)然,各個(gè)軟件也可以定義自己的頭域。

另一方面,RFC2616規(guī)范中并沒有限制每個(gè)HTTP頭的長(zhǎng)度,或者限制HTTP頭的數(shù)量,但出于性能和安全的考慮,多數(shù)服務(wù)器都會(huì)自己作規(guī)定,例如apache2.3
就規(guī)定每個(gè)HTTP頭不能超過(guò)8190個(gè)字節(jié),每個(gè)請(qǐng)求不能超過(guò)100個(gè)HTTP頭。

以下來(lái)看看發(fā)送一個(gè)請(qǐng)求(request)時(shí)候,可能包含的各個(gè)HTTP頭和它的解釋。

標(biāo)準(zhǔn)的請(qǐng)求頭--

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

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

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

Accept-Language:瀏覽器接收的語(yǔ)言,其實(shí)也就是用戶在什么語(yǔ)言地區(qū),例如簡(jiǎn)體中文的就是 Accept-Language: zh-CN

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

Cache-Control:這個(gè)指令在request和response中都有,用來(lái)指示緩存系統(tǒng)(服務(wù)器上的,或者瀏覽器上的)應(yīng)該怎樣處理緩存,因?yàn)檫@個(gè)頭域比較重要,特別是希望使用緩 存改善性能的時(shí)候,內(nèi)容也較多,所以我想在下一篇博文中主要介紹一下。

Connection:告訴服務(wù)器這個(gè)user agent(通常就是瀏覽器)想要使用怎樣的連接方式。值有keep-alive和close。http1.1默認(rèn)是keep-alive。keep-alive就是瀏覽器和服務(wù)器 的通信連接會(huì)被持續(xù)保存,不會(huì)馬上關(guān)閉,而close就會(huì)在response后馬上關(guān)閉。但這里要注意一點(diǎn),我們說(shuō)HTTP是無(wú)狀態(tài)的,跟這個(gè)是否keep-alive沒有關(guān)系,不要認(rèn)為keep-alive是對(duì)HTTP無(wú)狀態(tài)的特性的改進(jìn)。

Cookie:瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí)發(fā)送cookie,或者服務(wù)器向?yàn)g覽器附加cookie,就是將cookie附近在這里的。例如:Cookie:user=admin

Content-Length:一個(gè)請(qǐng)求的請(qǐng)求體的內(nèi)存長(zhǎng)度,單位為字節(jié)(byte)。請(qǐng)求體是指在HTTP頭結(jié)束后,兩個(gè)CR-LF字符組之后的內(nèi)容,常見的有POST提交的表單數(shù)據(jù),這個(gè)Content-Length并不包含請(qǐng)求行和HTTP頭的數(shù)據(jù)長(zhǎng)度。

Content-MD5:使用base64進(jìn)行了編碼的請(qǐng)求體的MD5校驗(yàn)和。例如:Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==

Content-Type:請(qǐng)求體中的內(nèi)容的mime類型。通常只會(huì)用在POST和PUT方法的請(qǐng)求中。例如:Content-Type: application/x-www-form-urlencoded

Date:發(fā)送請(qǐng)求時(shí)的GMT時(shí)間。例如:Date: Tue, 15 Nov 1994 08:12:31 GMT

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

From:發(fā)送這個(gè)請(qǐng)求的用戶的email地址。例如:From: user@example.com

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

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

If-Modified-Since:詢問(wèn)服務(wù)器現(xiàn)在正在請(qǐng)求的資源在某個(gè)時(shí)間以來(lái)有沒有被修改過(guò),如果沒有,服務(wù)器則返回304狀態(tài)來(lái)告訴瀏覽器使用瀏覽器自己本地的緩存,如果有修改過(guò),則返回200,并發(fā)送新的資源(當(dāng)然如果資源不存在,則返回404。)

If-None-Match:和If-Modified-Since用意差不多,不過(guò)不是根據(jù)時(shí)間來(lái)確定,而是根據(jù)一個(gè)叫ETag的東西來(lái)確定。關(guān)于etag我想在下一篇博客介紹一下。

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

If-Unmodified-Since:詢問(wèn)服務(wù)器現(xiàn)在正在請(qǐng)求的資源在某個(gè)時(shí)刻以來(lái)是否沒有被修改過(guò)。

Max-Forwards:限制請(qǐng)求信息在代理服務(wù)器或網(wǎng)關(guān)中向前傳遞的次數(shù)。

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

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

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

Referer:指當(dāng)前請(qǐng)求的URL是在什么地址引用的。例如在www.a.com/index.html頁(yè)面中點(diǎn)擊一個(gè)指向www.b.com的超鏈接,那么,這個(gè)www.b.com的請(qǐng)求中的Referer就是www.a.com/index.html。通常我們見到的圖片防盜鏈就是用這個(gè)實(shí)現(xiàn)的。

Upgrade:請(qǐng)求服務(wù)器更新至另外一個(gè)協(xié)議,例如:Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

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

Via:用來(lái)記錄一個(gè)請(qǐng)求經(jīng)過(guò)了哪些代理或網(wǎng)關(guān)才被送到目標(biāo)服務(wù)器上。例如一個(gè)請(qǐng)求從瀏覽器出發(fā)(假設(shè)使用http/1.0),發(fā)送給名為 SomeProxy的內(nèi)部代理,然后被轉(zhuǎn)發(fā)至www.somenet.com的公共代理(使用http/1.1),最后被轉(zhuǎn)發(fā)至目標(biāo)服務(wù)器www.someweb.com,那么在someweb.com中收到的via 頭應(yīng)該是: via:1.0 someProxy 1.1 www.someweb.com(apache 1.1)

Warning:記錄一些警告信息。

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
sese一区| 青青草观看免费视频在线| 国产www网站| 国产一级二级在线| 黄网址在线播放免费| 免费在线超碰| 中文字幕av中文字幕| 国产黄色片中文字幕| 精品国产白色丝袜高跟鞋| ·天天天天操| 麻豆电影传媒二区| 国产精品入口麻豆免费看| 福利视频网址导航| 国产欧美一区二区三区小说| 国产高清视频免费最新在线| 亚洲91av| 国产区在线视频| 亚洲欧美小说国产图片| 中文字幕日本在线| 日本免费黄色| 91午夜视频| 综合图区亚洲白拍在线| www久久日com| 精品av中文字幕在线毛片| 成年女人在线视频| 性国产高清在线观看| 国产精品视频二区三区| 青青在线视频| 91精品专区| 国产精品ⅴa有声小说| 交换国产精品视频一区| 国产黄色小视频| 中文字幕在线视频网| 亚洲wwwwww| 伊人狠狠av| 97国产在线| 国产三级视频| 中文字幕国产欧美| 中文字幕毛片| 最新国产在线精品91尤物| 国产美女极品在线| 久草网在线视频| 在线āv视频| 99热免费在线| 亚洲国产日韩成人综合天堂| 中文一区在线观看| 在线观看av中文| 四虎免费视频| 黄网站app在线观看下载视频大全官网| 永久免费在线观看| 欧美国产中文| 中文字幕第一页av| 国产成人精品久久一区二区小说 | 精品推荐国产麻豆剧传媒| 国产网站免费观看| 国产欧美日本亚洲精品一4区| 国产视频三级在线观看播放| 中文字幕av中文字幕| 国产成在线观看免费视频| 国产成人无吗| 久热精品视频在线播放| 国产私拍精品| 日韩中文字幕久久久经典网| 久草在线视频网| 国产精品69一区二区三区| av在线日韩国产精品| 青青草原国产在线| 国产视频三级在线观看播放| av在线1区2区| 国产一级二级三级在线观看| 99在线播放| 国产精品偷乱一区二区三区| 精精国产xxxx视频在线| 超碰免费在线播放| 91亚洲精选| 日本中文字幕在线观看| 99爱在线观看| 国产精品免费视频一区一| 六月天色婷婷| 午夜影院免费看| 国产黄色在线网站| 日本h片在线观看| 91中文在线| 国产丝袜精品丝袜| 老师我好爽再深一点的视频| 97国产在线| 国产精品666| 丁香婷婷在线观看| 四虎国产精品永久地址998| 国产欧美在线观看视频| 日本中文字幕视频| 好男人社区在线视频| 四虎成人精品在永久在线观看| 国产男女av| 国产精品综合久久久久| 超碰在线网站| 午夜在线不卡| 伊人av免费在线观看| 91看片在线观看| 97影院秋霞午夜在线观看| 国产网站av| 国产高清av| av免费网站在线观看| 在线视频中文字幕久| a中文在线播放| 天天草天天操| 久草福利资源在线视频| 国产在线一二三区| 中文字幕国产在线| √天堂8资源中文在线| 久久亚洲资源| 国产美女在线免费观看| 国产精品偷乱一区二区三区| 国产精品乱码一区二区三区视频| 国产调教视频在线观看| 国产极品一区二区三区 | 精品资源在线看| 国产美女av在线| 国产h色视频在线观看| 在线国产1区| 久久精品国产亚洲a∨麻豆| 自拍av在线| 在线观看av网站| 黄色毛片在线观看| 国产l精品国产亚洲区在线观看| 精品女厕厕露p撒尿| japanese色国产在线看视频| 国产麻豆高清视频在线第一页| 国产丝袜在线播放| 青青青手机在线视频观看| 最新中文字幕av专区| 夜夜操com| 国产午夜三区视频在线| 日本黄色免费网址| 国产天堂在线| 久久亚洲国产成人亚| 国产精品视频一区麻豆| 全网国产福利在线播放| 18av在线播放| 国产性网软件大全| www.国产精| 中文日本在线观看| 国产视频资源| 国产一级影片| 国产免费专区| 黄网在线免费| 尤物在线精品视频| 国产成人精品久久一区二区小说 | 国产在线免费观看| 四虎免费视频| 在线国产一区二区三区| 国产激情自拍| 国产精品久久久久久精| 天堂在线中文| 嫩草在线播放| 亚洲欧美日韩成人网| 在线午夜视频| 一本大道香蕉8中文在线视频| 国产黄色大片在线观看| 国产视频二区在线观看| 国产三级自拍| 国产91足控脚交在线观看| 国产l精品国产亚洲区在线观看| 国产一二区视频| 国产一区二区三区四区尤物| 国产主播福利在线| 国产卡1卡2卡三卡在线| 午夜av在线播放| 国产网红在线观看| 国产精品自产拍在线网站| 国产免费黄色| 69视频在线观看| a中文在线播放| 成人午夜无人区一区二区| 天天操夜夜操天天射| 国产精品入口麻豆高清| 精品一区二区三区免费站| 午夜在线视频| 国产中文在线视频| 中文字幕免费在线视频| 一区二区三区四区在线免费视频| 亚洲精品一区中文字幕电影| 欧美日韩在线中文字幕| 中文字幕在线永久在线视频| 国产小视频免费在线观看| 99综合精品久久| 九九精品九九| 91麻豆精品国产91久久| 老鸭窝av在线| 99热免费观看| 日韩av成人| 日本一本久久| 国产精品乱码一区二区三区视频| av二区三区| 国产精品乱码一区二区三区视频| 亚洲精品aaaa精品| 国产激情自拍| 最新中文字幕在线视频| 操人视频91| 国产黄色av免费看|