昨天用IdentityServer4搭建了一個(gè)簡(jiǎn)單的SSO登陸服務(wù)器,今天把它部署到Ubuntu服務(wù)器上面撒穷。
開(kāi)發(fā)環(huán)境運(yùn)行的時(shí)候沒(méi)有問(wèn)題匣椰,可是到了生產(chǎn)環(huán)境,就有各種各樣的問(wèn)題端礼。其中一個(gè)就算我客戶(hù)端站點(diǎn)登陸驗(yàn)證后禽笑,會(huì)跳到請(qǐng)求路徑的時(shí)候因?yàn)樵诼窂胶竺嫣砑恿?signin-oidc,nginx一直報(bào)502 bad 錯(cuò)誤。
一開(kāi)始以為是IdentityServer4服務(wù)器的問(wèn)題蛤奥,通過(guò)和本地的畢竟佳镜,都沒(méi)有發(fā)現(xiàn)問(wèn)題。網(wǎng)上有人說(shuō)是生產(chǎn)環(huán)境一定要https凡桥,仔細(xì)一想這不和邏輯啊蟀伸。
接著把問(wèn)題轉(zhuǎn)移到客戶(hù)端代碼,然而客戶(hù)端代碼也沒(méi)有發(fā)現(xiàn)什么問(wèn)題。那就是nginx的問(wèn)題了啊掏,可是nginx為什么回這樣呢蠢络?通過(guò)分析本地環(huán)境整個(gè)驗(yàn)證過(guò)程的請(qǐng)求報(bào)文,我發(fā)現(xiàn)了一個(gè)問(wèn)題迟蜜。
請(qǐng)求的header特別的長(zhǎng)刹孔,對(duì)于apache和nginx對(duì)與請(qǐng)求的header是由現(xiàn)在的,那會(huì)不會(huì)是這個(gè)問(wèn)題呢小泉。于是通過(guò)修改nginx的nginx.conf,
重新啟動(dòng)一下nginx芦疏,發(fā)現(xiàn)登陸驗(yàn)證成功后正常跳入請(qǐng)求界面。
一個(gè)居于IdentityServer4的SSO登陸服務(wù)器總算搭建起來(lái)微姊,后面陸續(xù)會(huì)進(jìn)行完善酸茴。
最新想說(shuō)的對(duì)于dotnet core開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境還是會(huì)出現(xiàn)很多意想不到的問(wèn)題,如何盡可能的去避免這個(gè)問(wèn)題兢交,可以用docker容器薪捍,講環(huán)境和應(yīng)用一起做成一個(gè)images然后push到服務(wù)器上去就ok。