Windows Server 2008 R2 IIS部署Flask

介绍

大家都知道服务器使用linux部署的好,但总有一些例外。

这次部署,看了很多的教程,但还是遇到很多坑。所以写这篇记录一下,为自己,也是为了后来人能多一份参考。

安装

  1. python的安装

    明确需要安装的python版本,在官网选择对应的版本下载,安装。安装时建议勾选ADD Python xx to PATH,并选择自定义安装在一个较短的路径下,方便后面使用时过长的路径造成输入错误。

  2. 安装数据库

    选择恰当的数据库,和本地安装数据库步骤一样,这里就不多说。

  3. 安装IIS和URL重写

    这两个软件可以通过Microsoft Web Platform Installer来安装,下载后运行,在搜索框中输入CGI,点击添加,输入URL点击添加。之后点击安装即可,等待安装完成。

1529291973276.png
1529292336895.png
1529292381033.png
  1. 上传代码

这里远程桌面我是用teamviewer,一个很良心的远程连接软件,个人使用免费,不过传输速度很一般。总之,将代码上传到服务器。

配置

  1. 安装web程序依赖包
    • 在代码目录中按住shift+鼠标右键点击在此处打开命令提示符。使用命令pip install -r requirements.txt安装web程序依赖包(如果有的话)。
    • 使用命令pip install wfastcgi安装wfastcgi,安装成功后启用wfastcgi,使用命令wfastcgi-enable。返回如图4,记住返回的c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py,python安装目录不同,返回的不相同,以自己的为准。当然也可以使用wfastcgi-disable停止该服务。
1529293402884.png

在Internet 信息服务(IIS)管理器配置网站

  1. 打开Internet 信息服务(IIS)管理器
1529306889481.png
  1. 点击网站,右键添加网站,点击确定


    1529306999895.png
  2. 处理程序映射


    1529307115340.png
  3. 双击进入处理程序映射后,点击右边添加模块映射。

如果双击处理程序映射报错(...在父级别上锁定了该节...),在管理员权限的命令提示符下执行下面两条命令即可。

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 
 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
1529307329734.png
  1. 点击请求限制,取消勾选


    1529307368328.png
  2. FastCGI设置


    1529307471177.png
1529307503205.png
  1. 添加两个环境变量
  • name 为PYTHONPATH,value为C:\MathModeling-dev(注意:这里是你的程序根目录地址)
  • name为WSGI_HANDLER,value为run.app(注意:这里应该是你启动项目时运行的程序名加上.app)
    1529307529508.png
  1. 回到这里,点击重新启动后,点击浏览网站下面的链接,应该就能看到你的网站了。至此我们就成功部署了。


    1529307974650.png

阿里云搭建实战

进行上面的步骤没有问题的话,我们这里只需要设置阿里云服务器的防火墙即可。

1529309477624.png

点击添加规则,设定好端口范围即可。这里的端口范围应该包含我们添加网站时设置的端口。
1529308311528.png

用外网就可以访问了,如果不能访问,进行以下设置。
1529308508092.png

打开高级安全windows防火墙,点击左边的入站规则,再点击右边的新建规则
1529308585656.png

1529308659873.png
1529308728136.png

然后下一步,下一步到完成就OK.名称随便写都可以。到这里外网应该能访问了,如果还不行,就直接关闭服务器的防火墙。检查以上所有步骤是否完善正确。

参考

Deploying Python web app (Flask) in Windows Server (IIS) using FastCGI

使用wfastcgi在IIS上部署Python Flask应用

Windows IIS 部署 Flask应用

你可能感兴趣的:(Windows Server 2008 R2 IIS部署Flask)