新手小白用IIS部署Django框架

        小白第一次用windows的IIS部署Django框架,安照下面的教程一步一步来。如果还是部署不好怎办?兄弟我知道你很着急,但是你先别急,你先听我说:

        首先就是检查,再检查,其次检查,然后检查。总之一定要检查。

        最后就是一定一定要检查,还是不行关上电脑睡一觉再检查。

好了,上菜。

  • 安装部署项检查

Django为项目的安全配置提供了自动检查配置命令(python manage.py check --deploy),执行后将产生一份配置报告。通过对配置进行修改,可以使项目主要包括:(高亮部分为重点,否则将报错)

  1. 关键配置项

·DEBUG:在生成环境中设置为True,可以保护配置型相关的敏感信息不被泄露。若网站部署出现错误则设置成False,方便debug

  1. 特定环境配置项

·ALLOWED_HOSTS建议在生产部署中不要使用’*’,否则会增大遭遇CSRF攻击的概率(本次使用内网部署,不会有太大风险,改成‘*’即可)。可以在ALLOWED_HOSTS指定允许访问的域名。(若使用局域网部署,即该台服务器的IP地址)

·DATABASE:配置列表中的参数设置成正式运行环境下的参数。(按照数据库文档修改)

·STATICFILES_DIRS和STATIC_URL:在正式部署前,必须使用指定生产环境下的静态文件路径。

STATIC_URL =  ‘/static/’

STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

·MEDIA_ROOT和MEDIA_URL:指定上传媒体文件的固定子目录,防止被web服务器解释并执行

MEDIA_ROOT = os.path.join(BASE_DIR,‘media’) .replace(‘\\’,’/’)
MEDIA_URL = ‘/media/’

  1. Cookie安全配置项

SESSION_COOKIE_SECURE=True  #启用HTTPS方式传输Cookie信息,以提高信息的安全性.

CSRT_COOKIE_SECURE=True  #启用CSRF防攻击Cookie传输方式

  1. 性能优化配置项

CONN_MAX_AGE:主要为了在大并发访问网站时为数据库链接提供在线复用功能,避免频繁地直接与数据库建立链接

TEMPLATES:使用模板时会先渲染编译代码,启用缓存的模板可以无需重复编译,通常能极大地提高性能。

上述改善性能的方法在实际使用中需要通过实际运行结果判断其效果。

  • 安装IIS

1.选择“控制面板”->“程序”->“启用或关闭Windows功能”

2.在“启用或关闭Windows功能”中选择“Internet Information Services”->“万维网服务”->“应用程序开发功能”,将“ASP”,“CGI”,“ISAP扩展”,“ISAP筛选器”等选项打勾,如下所所示

3.选择确定,耐心等待一会。

4.IIS安装完成后,在Windows系统中搜索IIS,即可找到IIS启动主页面

  • 配置Web站点

此时已安装IIS,Python。Web站点配置如下:

  1. 在命令提示符中安装wfastcgi库,用来实现Python和IIS的连接,命令如下:

Pip install wfastcgi

在Python的安装目录(如“.\Python\Lib\site-packages”)下可以看到已经安装的wfastcgi库。

  1. 在IIS中配置项目站点

打开左侧列表,选择“网站”后,点击“添加网站”

然后,在弹出的界面中设置网站名,物理路径,端口,IP地址4个参数

其中,物理路径为项目所在路径,原始端口号为80,改为8000(网站每次部署的端口号都不能相同)

  1. 网站添加成功后,在IIS可以看到新添加的网站列表项,点击该网站,选择“处理程序映射”,点击“添加模块映射…”

  1. 在“添加模块映射”模块中设置如下参数:

请求路径:*

模块:FastCgiModule

可执行文件:打开cmd,输入wfastcgi-enable或者wfastcgi-disable可得到,(如:“D:\Python\python.exe|D:\Python\Lib\site-packages\wfastcgi.py”)

名称:随意

最后,点击“请求限制”,取消勾选复选框

  1. 模块添加成功后,在IIS主页面可以看到“FastCGI设置”图标,点击进入

  1. 选择点击刚刚的可执行文件

  1. 找到“环境变量”,点击“集合”旁边的图标

  1. 点击“添加”,添加三个环境变量,如下:

name:WSGI_HANDLER

 value:django.core.wsgi.get_wsgi_application()

 name:PYTHONPATH

 value:D:\本科\大三上\实习\test3.3\DataManageSystem (替换为自己的项目路径)

 name:DJANGO_SETTINGS_MODULE

 value:DataManageSystem.settings(DataManageSystem替换为自己的项目名)

  1. 访问网站,点击自己的网站右侧列表中浏览网站,即可浏览

四.IIS部署网站显示静态文件

  1. 在自己的网站右键选择添加虚拟目录

  1. 别名:static

物理路径:项目中static所在的路径

  1. 在static目录里新建一个web.config文件

目的:web.config文件是一个XML文本文件,用来存储ASP.NETWeb应用程序的配置信息。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置信息/如果你想修改子目录的配置设置,你可以在该子目录下新建一个web.config文件。它可以提供从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

<?xml version="1.0" encoding="UTF-8"?>

    <configuration>

      <system.webServer>

      <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->

      <handlers>

        <clear/>

   <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />

     </handlers>

   </system.webServer>

</configuration>

  • 如访问网站出现如下错误:

出现这样的情况是因为IIS7之后的版本都采用了更安全的web.config管理机制,默认情况下会锁住配置项不允许更改。我们把它解锁就OK了。

打开cmd,依次输入下面两条命令

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

猜你喜欢

转载自blog.csdn.net/h_u_m_a_n/article/details/128377201