Windows Server IIS 部署Flask web程序,Nignx反向代理

环境配置

  1. Python 3.6
  2. Flask 1.0.2
  3. Anaconda 配置虚拟环境
  4. 开发工具PyCharm
  5. Nginx-1.15.10
  6. Windows Server 2012

准备工作

  1. 为了方便部署,偷懒在服务器上也直接安装了anaconda
  2. 要在IIS上完成部署需要下载 WebPlatformInstaller

开始部署

准备虚拟环境

公司服务器上需要部署多个Flask应用,因此,针对每个应用建立了虚拟环境

Anaconda 生成虚拟环境

Anaconda 有界面可视化工具可以直接生成虚拟环境,也可以采用 conda 语句生成虚拟环境。

激活虚拟环境

在Anconda Prompt 界面中,输入语句:

activate your-env-name

可以看到
在这里插入图片描述
连接前地址变为你的虚拟环境名称

安装依赖包

使用命令行进行操作

cd /d D:\your-project-root
pip install -r requirements.txt

在这步之前,需要先在本机环境中生成 requirements.txt 文件
生成办法如下:
在Pycharm Terminal 命令窗口中,输入:

pip freeze > requirements.txt

测试环境准备就绪

在虚拟环境中运行 app.py (就是你应用的启动文件,可能是 manage.py , run.py等)

python app.py

如果应用可以正常启动,则虚拟环境配置完成。

安装wfastcgi

在虚拟环境中使用 pip 直接安装

pip install wfastcgi

安装完成后,将虚拟环境目录下的 wfastcgi.py 文件拷贝到项目文件的根目录下

配置IIS环境

开启CGI

在服务器 【控制面板】–【程序】-- IIS服务中,开启CGI

安装WebPlatform

双击exe 文件,安装完成即可

开启URL重写

在这里插入图片描述
检查CGI已经成功安装
在这里插入图片描述
开启URL重写
在这里插入图片描述

离线情况下开启URL重写工具

在https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads 处下载对应版本的离线安装包,进行安装。

部署Web应用

新建网站

在这里插入图片描述

配置处理程序映射

在这里插入图片描述
在这里插入图片描述
可执行文件中的内容为:C:\ProgramData\Anaconda3\envs\PurchaseCrawler\python.exe|D:\PurchaseCrawler\wfastcgi.py(虚拟环境Python.exe文件所在路径 | 项目文件根目录)
请求限制部分取消限制
在这里插入图片描述
点击确认后,在弹出窗口继续点击确认

配置FastCGI设置

在这里插入图片描述
在这里插入图片描述
之前的配置成功的话,这里应该能看到已经生成了一条应用记录。
双击这条记录,在环境变量处添加环境变量。
在这里插入图片描述
Flask部署时只需要两个环境变量:

WSGI_HANDLER 对应Flask实例的位置,这里就是flaskWeb文件内的app
PYTHONPATH 为网站根目录

检查配置成功

浏览器访问,网页正常显示,IIS部署完成

Nignx配置

由于部署在公司内网服务器中,还需要通过Nignx 进行反向代理。
在Nignx 的配置文件中增加以下代码:

		#爬虫
        location /show/ {
            proxy_pass   http://127.0.0.1:5000/show/;		
        }
		location ~/static/ {
			#root后面写项目static文件夹在你后台的绝对路径
			root d:/PurchaseCrawler/static/;
			rewrite ^/static/(.*)$ \$1 break;
		}
	

前面说过了,Nignx上面有很多个其他的网站,因此location 后面配置了不同的路径来区分多个网站
Flask web 应用中所有的js,css文件均放在 statilc 文件夹中,Nignx代理之后发现找不到static文件夹,因此还需要添加后面的部分,通过 root 和 rewrite 能够找到static中的js,css文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值