昨天用IdentityServer4搭建了一個簡單的SSO登陸服務(wù)器,今天把它部署到Ubuntu服務(wù)器上面。
開發(fā)環(huán)境運行的時候沒有問題,可是到了生產(chǎn)環(huán)境,就有各種各樣的問題。其中一個就算我客戶端站點登陸驗證后,會跳到請求路徑的時候因為在路徑后面添加了/signin-oidc,nginx一直報502 bad 錯誤。
一開始以為是IdentityServer4服務(wù)器的問題,通過和本地的畢竟,都沒有發(fā)現(xiàn)問題。網(wǎng)上有人說是生產(chǎn)環(huán)境一定要https,仔細一想這不和邏輯啊。
接著把問題轉(zhuǎn)移到客戶端代碼,然而客戶端代碼也沒有發(fā)現(xiàn)什么問題。那就是nginx的問題了,可是nginx為什么回這樣呢?通過分析本地環(huán)境整個驗證過程的請求報文,我發(fā)現(xiàn)了一個問題。

請求的header特別的長,對于apache和nginx對與請求的header是由現(xiàn)在的,那會不會是這個問題呢。于是通過修改nginx的nginx.conf,

重新啟動一下nginx,發(fā)現(xiàn)登陸驗證成功后正常跳入請求界面。
一個居于IdentityServer4的SSO登陸服務(wù)器總算搭建起來,后面陸續(xù)會進行完善。
最新想說的對于dotnet core開發(fā)環(huán)境和生產(chǎn)環(huán)境還是會出現(xiàn)很多意想不到的問題,如何盡可能的去避免這個問題,可以用docker容器,講環(huán)境和應(yīng)用一起做成一個images然后push到服務(wù)器上去就ok。