我想托管我的fastAPI應用程式gunicorn并將其托管在 Kubernetes 服務上。我的 Kubernetes 服務使用HTTP指定端點上的呼叫運行活動探測(健康檢查)。
我還希望為該應用程式提供服務,HTTPS因為我的 Kubernetes 服務將其公開以供外部組件使用。
現在,我的 HTTP 端點不能依賴重定向,因為活性探測器期望 a200 Response并且重定向會妨礙它。
我想在預先指定的埠上托管我的 HTTPS 端點,因為該組織擁有最佳實踐并且指定了端點和埠。
StackOverflow 上的一些類似問題:
- 在 http 和 https 上運行 Gunicorn
- uvicorn [fastapi] python 同時運行 HTTP 和 HTTPS
但是這兩種重定向都可以,而我們不是。我們也不能使用NGINX服務器,因為在我的組織中不推薦使用該支持。
uj5u.com熱心網友回復:
如果我們在 Docker 環境中嘗試這個。以下將完成它:
Dockerfile:
ENTRYPOINT ./start.sh
Shell 腳本 start.sh:
gunicorn -k uvicorn.workers.UvicornWorker -w 3 -b 0.0.0.0:30000 -t 360 --reload app:app & gunicorn -k uvicorn.workers.UvicornWorker -w 3 --certfile certfile.txt --keyfile keyfile.txt --ca-certs ca_certs.txt -b 0.0.0.0:8443 -t 360 --reload app:app
在&運行一個在后臺,然后運行另一個。您可以將一種配置為使用 HTTP,另一種配置為使用 HTTPS。
我們使用的gunicorn是fastAPI應用程式,因此我們使用的是uvicorn作業人員,您需要根據您的用例對其進行相應更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/343804.html
