nginx反向代理學(xué)習(xí)過程中問題及解決總結(jié)
本文記錄的是up自己遇到這些問題的解決方法,目的是讓記錄供日后學(xué)習(xí),有相同問題小伙伴給一個思路,也可以評論私信我。
背景:家里有一臺存放數(shù)據(jù)的NAS,系統(tǒng)為群輝,并且安裝了docker,在docker上安裝有homeassistant容器,up有自己的域名,家中外網(wǎng)ip是動態(tài)ip,之前是花生殼DDNS,后來改了aliyun解析域名(在docker中安裝了DDNS)

,家中普通路由器做的端口映射,可以實現(xiàn)外網(wǎng)通過http方式訪問家中NAS和homeassistant。后來因為homeassistant中部署一個服務(wù),實現(xiàn)小愛同學(xué)接入homeassistant,接口必須通過https訪問,所以,為了簽發(fā)SSL證書通過HTTPS訪問并且更安全,在docker中又部署了let's encrypt,實現(xiàn)自簽SSL證書,并且內(nèi)置反向代理nginx。
/docker/lets_encrypt/dns-conf,這個路徑下的aliyun.ini文件access_key和access_key_secret修改,在阿里云DNS解析官網(wǎng)。還有容器80端口和443端口的轉(zhuǎn)發(fā)用于SSL簽發(fā)的驗證。

過程中出現(xiàn)的幾個頭疼問題?。?!解決方法
設(shè)置反向代理后,網(wǎng)址訪問返回

這個是本地服務(wù)名稱如果設(shè)置錯誤,不一致,找不到這個服務(wù),就會出現(xiàn)這個問題,具體可以查看nginx的logs。例如你的一個服務(wù)config里homeassistant(這個是我的服務(wù)名,也就是我docker里容器的名稱)和我實際docker中容器的名稱不一致例如docker里叫homeassistant1,就會報502。

2.在我配置homeassistant反向代理時出現(xiàn)了
400 bad request
實際測試發(fā)現(xiàn),請求是已經(jīng)到了homeassistant,卻被拒絕了,查看nginx的logs發(fā)現(xiàn)是通過的,是返回了400。查看homeassistant的logs時發(fā)現(xiàn),
A request from a reverse proxy was received from 172.18.0.4, but your HTTP integration is not set-up for reverse proxies
實際是收到訪問請求后給拒絕了。
解決辦法 修改configuration.yaml
添加
http:
? use_x_forwarded_for: true
? trusted_proxies:
? ? - 172.30.33.1? #?添加訪問的ip白名單
各位遇到問題也可以評論,看見了一起研究解答以下。