如何使用AWS实例在Windows IIS中部署Django Web应用程序?

时间:2020-03-08 04:56:54

标签: python django iis amazon-ec2 deployment

我目前正在开发该应用程序,该应用程序将调用服务以执行后端操作,并且我想使用Windows IIS在AWS实例中部署这些API。有人可以解释一下部署相同步骤的步骤吗?

2 个答案:

答案 0 :(得分:1)

如何使用 Microsoft IIS 服务器在 Windows 上部署 Django Web 应用程序

使用 Microsoft IIS 在 Windows 上部署 Django

步骤 1:将项目文件粘贴到 C:\inetpub\wwwroot 或 C:\ 目录或任何其他目录。

第 2 步:在 C:\Python 中安装 Python,因为路径限制用户友好 - 适当的版本并设置路径环境变量。

第 3 步:安装 Microsoft C++ 构建工具 https://visualstudio.microsoft.com/visual-cpp-build-tools/

安装_Mirosoft C++ 构建工具

Install_Mirosoft _C++_Buid_Tool

第 4 步:如果未安装 Microsoft IIS,请执行以下步骤:转到控制面板 -> 程序和功能 -> 打开或关闭 Windows 功能 -> 选择 Internet 信息服务 (IIS) -> 选择所有服务您的项目,检查应用程序开发功能全部启用!!! -> 确认并继续。

Turn_on_IIS_Feature_in_Windows

Turn_on_IIS_Feature_in_Windows

步骤5:打开Microsoft IIS应用程序-右键单击->添加网站...->输入站点名称,选择物理项目路径位置即选择manage.py指定文件夹并输入绑定信息。

第 6 步:是的,您已成功创建 IIS 应用程序站点。

第 7 步:现在,您应该授予对项目文件夹和 python 文件夹的访问权限。

第8步:选择您的项目文件夹并右键单击->选择属性->安全->编辑组或用户名->添加->选择所有对象类型,选择机器,最后,输入对象名称-> IIS AppPool\您的 IIS 站点名称。

例如IIS AppPool\DjangoWebApplication 并检查对象中的名称,如果它的信息正确,它会获取应用程序对象名称,例如然后选择 DjangoWebApplication,然后选择对象名称并选择对应用程序的完全控制......并在 python 文件夹上使用相同的过程

第 9 步:现在,准备安装 python 库。安装所有项目需求库,还安装、pip install openpyxl、wfastcgi。

步骤 10:以管理员身份打开 CMD 并输入命令 wfastcgi-enable。

CMD 代码

CMD_Code

步骤11:然后,检查Microsoft IIS -> IIS -> 点击FastCGI Settings -> 如果配置成功则找到Details 否则找不到我们手动输入点击Add Application In Name,粘贴python可执行路径位置.

例如c:\python\python.exe ,在参数中粘贴 wfastcgi.py 位置.. 如果你不知道从 cmd 复制,例如c:\python\lib\site-packages\wfastcgi.py 并保持不变,继续

FastCGI 设置

FastCGI_Settings

第 12 步:在 manage.py 文件附近创建一个文件 web.config 并输入详细信息:

  <configuration>
  <system.webServer>
    <handlers>
      <add name="Python FastCGI"
           path="*"
           verb="*"
           modules="FastCgiModule"
           scriptProcessor="C:\Python\python.exe|C:\Python\Lib\site-packages\wfastcgi.py"
           resourceType="Unspecified"
           requireAccess="Script" />
    </handlers>
  </system.webServer>

  <appSettings>
    <!-- Required settings -->
    <add key="WSGI_HANDLER" value="my_app.wsgi_app()" />
    <add key="PYTHONPATH" value="C:\MyApp" />
    <add key="DJANGO_SETTINGS_MODULE" value="my_app.settings" />

    <!-- Optional settings -->
    <add key="WSGI_LOG" value="C:\Logs\my_app.log" />
    <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" />
    <add key="APPINSIGHTS_INSTRUMENTATIONKEY" value="__instrumentation_key__" />    
    <add key="WSGI_PTVSD_SECRET" value="__secret_code__" />
    <add key="WSGI_PTVSD_ADDRESS" value="ipaddress:port" />
  </appSettings>
</configuration>

从这里开始,您必须根据您的系统角度进行更改

首先,更改 scriptProcessor 设置,例如"c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py" 现在可以使用

二、改<add key="WSGI_HANDLER" value=" DjangoWebApplication.wsgi.application" />

三、改<add key="PYTHONPATH" value="C:\DjangoWebApplication folder" />

四、改<add key="DJANGO_SETTINGS_MODULE" value=" DjangoWebApplication.settings" />

然后,剩下的可选。

第 12 步:然后,从静态文件夹创建另一个文件 web.config 并输入详细信息:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <clear />      
      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
    </handlers>
  </system.webServer>
</configuration>

第 13 步:然后,从媒体文件夹创建另一个文件 web.config 并输入详细信息:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <clear />
            <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Script" allowPathInfo="true" preCondition="" responseBufferLimit="4194304" />
        </handlers>
        <directoryBrowse showFlags="Date, Time, Size, Extension, LongDate" />
    </system.webServer>
</configuration>

步骤 14:打开 Internet 信息服务 (IIS) 管理器。在连接下选择服务器,然后在管理下的中心窗格中选择配置编辑器。在部分下选择 system.webServer/handlers。在部分下选择解锁部分。这是必需的,因为 C:/inetpub/wwwroot/web.config 为我们的项目创建了一个路由处理程序。

第 15 步:添加虚拟目录。为了启用静态文件服务,将静态别名映射到静态目录,C:/inetpub/wwwroot/webproject/static/。

步骤 16:添加虚拟目录。为了启用服务媒体文件,将媒体别名映射到媒体目录 C:/inetpub/wwwroot/webproject/media/。

第 17 步:是的,现在已准备好托管站点,然后检查 settings.py 编辑允许的主机并添加 IP 地址和端口号。

第 18 步:然后,通过 Django 运行命令 python manage.py collectstatic 生成静态文件。

第 19 步:现在,一切就绪……启动服务器并检查一切是否正常。

请参阅:https://github.com/Johnnyboycurtis/webproject 以获得清晰的解释...

参考文献

答案 1 :(得分:0)

我不确定您的应用程序的用途是什么(也是最好的部署方式),但是在Windows IIS Server上部署Django项目有相当简单的步骤。

这里是指南Deploy Django on Windows using Microsoft IISGitHub/webproject后面的代码

此外,这是Microsoft撰写的有关如何部署Python项目Configure Python web apps for IIS的文章。本文指导您完成如何使用IIS部署Django项目以及如何配置项目的web.config文件的步骤。本文未完全详细介绍,因此这就是为什么我在上面包含自己的教程,该教程提供了在Microsoft IIS上部署Django项目的分步过程。

使用Microsoft IIS设置Django

根据您的项目,您可能有特定的需求,但以下是使用IIS设置Django的一般工作流程

  1. 安装IIS和enable CGI

  2. 将项目放置在以下目录C:/inetpub/wwwroot/web.config文件中。 web.config文件不能坐在Django项目目录中,因为IIS无法找到它。

  3. Enable wfastcgi并将其Python路径复制到您的web.config文件中(在处理程序部分下)。

  4. 向您的settings.py文件添加必要的更改,并确保ALLOWED_HOSTS已更新。

  5. 解锁IIS handlers

  6. 导航到localhost并测试您的项目。

同样,这些步骤中缺少细节,但是希望上面的链接为启动和运行项目提供了必要的条件。