簡體   English   中英

Azure VM Gunicorn上Ubuntu 18.04中的Django無法連接到('0.0.0.0',80)

[英]Django in Ubuntu 18.04 on Azure VM gunicorn Can't connect to ('0.0.0.0', 80)

我正在嘗試將我的Django應用程序部署到具有Ubuntu 18.04的Azure虛擬機。

  1. 我已經設置了虛擬機並通過SSH連接到它。
  2. 然后運行update and upgrade命令
  3. 設置Python和虛擬環境
  4. 上傳我的代碼並激活環境
  5. 允許端口8000使用sudo ufw allow 8000測試
  6. 安裝所有要求之后,當我運行命令時:

     python manage.py runserver 0.0.0.0:8000 

該應用程序運行,但是當我打開URL時::8000 /

它不會在控制台中返回任何錯誤

更新:通過在Inbound port rules下的azure門戶中手動添加端口8000 但是:當我嘗試通過gunicorn運行它時:

gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file - --bind 0.0.0.0:80

它返回另一個錯誤,如下所示:

[30007] [錯誤]無法連接到('0.0.0.0',80)

這里有什么問題?

您還需要將0.0.0.0:80添加到入站端口規則。 截至目前,它僅接受8000個端口請求。

然后重試:

gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file -b 0.0.0.0:80

在Azure中添加80端口的步驟:

通過在子網或VM網絡接口上創建網絡篩選器,可以在Azure中打開到虛擬機(VM)的端口或創建終結點。 您可以將這些過濾器(用於控制入站和出站流量)放置在連接到接收流量的資源的網絡安全組上。

本文中的示例演示了如何創建使用標准TCP端口80的網絡篩選器(假定您已經啟動了適當的服務並在VM上打開了所有OS防火牆規則)。

1-創建配置為在標准TCP端口80上滿足Web請求的VM之后,您可以:

2-創建一個網絡安全組。

3-創建允許流量的入站安全規則,並將值分配給以下設置:

4-目標端口范圍:80

5-源端口范圍:*(允許任何源端口)

6-優先級值:輸入一個小於65,500且優先級高於默認值的默認值。

將網絡安全組與VM網絡接口或子網相關聯。

要修復有關無法通過python manage.py runserver 0.0.0.0:8000運行的應用程序的問題,有兩個原因可導致此問題。

  1. Azure VM NSG的入站端口規則不允許入站請求訪問端口8000。要在Azure門戶上的NSG中為端口8000添加新的端口規則以對其進行修復,如下圖所示。

圖1.在圖中添加此規則以允許端口8000的入站請求

在此處輸入圖片說明

圖2.添加入站安全規則對話框

在此處輸入圖片說明

  1. 編輯settings.py文件,將允許的主機或IP添加到ALLOWED_HOSTS陣列中,如下所示。

     # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = ['<your vm ip or DNS name>', 'localhost', '127.0.0.1'] 

然后運行python manage.py runserver 0.0.0.0:8000 ,您可以看到Django默認索引頁,而瀏覽器中沒有任何錯誤,如下圖所示。

注意: gunicorn服務器監聽端口80 ,這是默認的允許入站端口規則。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM