首页 > 解决方案 > Azure 应用服务 SSH 连接被拒绝。不使用 Docker。Django没有从要求安装

问题描述

我按照中的步骤https://docs.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?tabs=bash%2Cclone&pivots=postgres-single-server#4-deploy-the-code-to-azure-app-service将我的 Django 应用程序部署到 Azure。

问题:

  1. 要求未安装,因此应用程序未运行。不确定这是否是因为我使用az webapp up而不是 git 分支。

  2. 我尝试了 SSH,但出现了连接错误: SSH CONNECTION CLOSE - Error: connect EHOSTUNREACH 172.16.1.3:2222Error: connect EHOSTUNREACH 172.16.1.3:2222Error: Timed out while waiting for handshakeError: connect EHOSTUNREACH 172.16.1.3:2222

  3. 有文章提到将端口 2222 列入白名单以超过 80*,但我似乎无法在门户网站上找到执行此操作的位置。同样,我没有使用 docker 映像,因此无法添加配置。

  4. 使用 kudu 文件浏览器,看到 requirements.txt 在那里并且正确。

这是来自日志流的错误:

2021-08-17T15:21:04.475206899Z   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
2021-08-17T15:21:04.475210299Z   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
2021-08-17T15:21:04.475213499Z   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2021-08-17T15:21:04.475216699Z   File "/home/site/wwwroot/backend/wsgi.py", line 12, in <module>
2021-08-17T15:21:04.475219999Z     from django.core.wsgi import get_wsgi_application
2021-08-17T15:21:04.475222999Z ModuleNotFoundError: No module named 'django'

标签: djangoazureazure-web-app-serviceazure-appservice

解决方案


  • 这可能是解决方案ModuleNotFoundError: No module named 'django'(如Jay Gong所建议):

web.config文件中,<add key="WSGI_HANDLER" value="<your project name>.wsgi.application"/>django.core.wsgi.get_wsgi_application().

端口 2222 必须在您的容器使用的私有 Vnet 内公开。为此,请在 Docker 文件中包含以下行,目前,您似乎需要使用 Docker 映像来执行此操作:

EXPOSE 2222 80

您可以参考您应该知道的事情:Web 应用程序和 Linux为 Azure 应用程序服务配置自定义容器、为 Azure 应用程序服务准备Docker 容器AZURE WEB APP WITH LINUX CONTAINER SSH LOGIN ISSUE


推荐阅读