這篇文章主要講解了Nexus如何使用nginx代理實(shí)現(xiàn)支持HTTPS協(xié)議,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為浠水企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),浠水網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。背景
公司全部網(wǎng)站需要支持 HTTPS 協(xié)議,在阿里云負(fù)載均衡配置 SSL 證書后,導(dǎo)致 Nexus 的 HTTPS 訪問出錯(cuò)。
網(wǎng)站訪問路徑: 域名解析到阿里云的負(fù)載均衡,負(fù)載均衡配置 80 端口強(qiáng)轉(zhuǎn) 443 端口,443 端口配置 SSL 證書,并轉(zhuǎn)發(fā)到內(nèi)網(wǎng) nginx,內(nèi)網(wǎng)的 nginx 再代理 Nexus 服務(wù)。
解決
瀏覽器 HTTPS 訪問 Nexus 的 Console 報(bào)錯(cuò)信息:
報(bào)錯(cuò)信息大致意思是:HTTPS 訪問的頁面上不允許出現(xiàn) HTTP 請(qǐng)求。
解決方法: 在 nginx 配置文件增加 “proxy_set_header X-Forwarded-Proto https;” ,這樣 nginx 在轉(zhuǎn)發(fā)時(shí)就使用 HTTPS 協(xié)議。
nginx.conf 中的 nexus 配置內(nèi)容:
location ^~ /nexus { proxy_pass http://x.x.x.x:8080/nexus; sendfile off; 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; # 轉(zhuǎn)發(fā)時(shí)使用https協(xié)議 proxy_max_temp_file_size 0; # This is the maximum upload size client_max_body_size 20m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_temp_file_write_size 64k; # Required for new HTTP-based CLI proxy_http_version 1.1; proxy_request_buffering off; proxy_buffering off; # Required for HTTP-based CLI to work over SSL }