docker curl: (56) Recv failure: Connection reset by peer


 

場景:在部署Django程序時,啟動方式為gunicorn mysite.wsgi

以這種方式啟動后,容器內部訪問正常,部署容器的虛擬機上訪問正常,物理機上瀏覽器無法訪問,

此時修改啟動方式為gunicorn -b 0.0.0.0:8000 mysite.wsgi:application

修改后容器內部、虛擬機上、宿主機上都可以訪問了,

推測原因:

不綁定端口的啟動方式gunicorn mysite.wsgi, 

這樣會創建一個進程,包含了一個監聽在 127.0.0.1:8000 的線程。

https://docs.djangoproject.com/zh-hans/3.1/howto/deployment/wsgi/gunicorn/

 

{0,0}:網絡號和主機號都全部為0,表示“本網絡上的本主機”,只能用作源地址。
{0,host-id}:本網絡上的某台主機。只能用作源地址。
{-1,-1}:表示網絡號和主機號的所有位上都是1(二進制),用於本網絡上的廣播,只能用作目的地址,發到該地址的數據包不能轉發到源地址所在網絡之外。
{net-id,-1}:直接廣播到指定的網絡上。只能用作目的地址。
{net-id,subnet-id,-1}:直接廣播到指定網絡的指定子網絡上。只用作目的地址。
{net-id,-1,-1}:直接廣播到指定網絡的所有子網絡上。只能用作目的地址。
{127,}:即網絡號為127的任意ip地址。都是內部主機回環地址(loopback),永遠都不能出現在主機外部的網絡中

 

外部主機是無法訪問127的服務的,所以改綁定到0.0.0.0就行了,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM