1. 概述
最近基于Nginx + (Nginx + PHP7)的技術(shù)生態(tài)做負(fù)載均衡,其中PHP框架使用的是ThinkPHP5,支付業(yè)務(wù)中使用了微信支付,其中有一處邏輯:獲取當(dāng)前請(qǐng)求的域名并且微信支付的回調(diào)地址 \think\Request::instance()->domain()
,本來(lái)小程序端訪問(wèn)的是https協(xié)議,做了負(fù)載均衡之后,在程序中獲取到的http協(xié)議,這樣導(dǎo)致微信支付一直無(wú)法正確回調(diào),導(dǎo)致訂單狀態(tài)未改變。所以要Nginx負(fù)載均衡配置處,將協(xié)議透?jìng)?。查了網(wǎng)上很多文章,大多都是透?jìng)髡?qǐng)求ip而已,沒(méi)有涉及協(xié)議,故而在本文進(jìn)行匯總。
2. proxy_set_header指令
2.1 作用說(shuō)明
重新定義或者添加請(qǐng)求頭發(fā)往后端服務(wù)器。
2.2 語(yǔ)法
2.2.1 規(guī)則
proxy_set_header field value;
2.2.2 上下文
http, server, location
2.2.3 默認(rèn)值
其中$類(lèi)變量是Nginx中的請(qǐng)求會(huì)話可獲取的變量proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
2.3 常見(jiàn)選項(xiàng)說(shuō)明
選項(xiàng) | 值 | 說(shuō)明 |
---|---|---|
Host | $proxy_host | 服務(wù)器的對(duì)外提供的域名/主機(jī)地址 |
X-Forwarded-For | $proxy_add_x_forwarded_for | 用于識(shí)別通過(guò)HTTP代理或負(fù)載平衡器原始IP |
X-Real-IP | $remote_addr | 客戶端IP |
X-Forwarded-Proto | $scheme | 將負(fù)載均衡的https協(xié)議透?jìng)鞯胶蠖?/td> |
X-Real-Port | $remote_port | 客戶端或上一級(jí)端口 |
User-Agent | $http_user_agent | 客戶端的UA |
除此之外,還可以自定義/計(jì)算請(qǐng)求透往下游透?jìng)鳌?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-822299.html
3. 總結(jié)
針對(duì)于支付等核心業(yè)務(wù)場(chǎng)景,不建議動(dòng)態(tài)獲取域名的方式設(shè)置回調(diào)地址??梢酝ㄟ^(guò)配置文件中寫(xiě)固定值,這樣就不會(huì)因?yàn)椴渴鸺軜?gòu)的調(diào)整而導(dǎo)致重大業(yè)務(wù)事故。另外,部署架構(gòu)的調(diào)整,不要直接在生產(chǎn)環(huán)境替換,而是部署一套鏡像環(huán)境,把核心流程測(cè)試通過(guò)之后,再將小部分流量切換過(guò)去驗(yàn)證,最終沒(méi)問(wèn)題之后再整體切換。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822299.html
到了這里,關(guān)于Nginx負(fù)載均衡代理proxy_set_header設(shè)置和透?jìng)鱤ttps協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!