APP下载

Python+Flask开源网站在服务器上的部署

2019-02-13姜玲陈美旭辽宁科技大学国际金融与银行学院

数码世界 2019年1期
关键词:配置文件应用程序客户端

姜玲 陈美旭 辽宁科技大学国际金融与银行学院

1.网络请求与服务器的响应过程

网站的Web应用程序开发完成后,需要将其部署到服务器上。客户端从发送一个HTTP 请求到Flask处理请求,分别经过了web服务器层,WSGI层,web框架层三个层次。

1.1 Web服务器层

对于传统的客户端-服务器架构,其请求的处理过程是,客户端向服务器发送请求,服务器接收请求并处理请求,然后给客户端返回响应。在这个过程中,服务器的作用是:接收及处理请求,并返回响应。Web 服务器与应用程序之间要进行交互,这时就出现了很多 Web 服务器与应用程序之间交互的规范,比如 Python 专用的 WSGI 规范等等。有了统一标准,程序的可移植性就大大提高了。Web服务器是一类特殊的服务器,其作用是主要是接收HTTP请求并返回响应。在三层结构中,web服务器是最先接收用户请求的,并将响应结果返回给用户。

1.2 Web框架层

Web框架的作用主要是方便开发 web应用程序,HTTP请求的动态数据就是由web框架层来提供的。常见的支持python语言的web框架有Flask,Django等。有了框架,开发者就不需要处理 WSGI,框架会解决这些,开发者只需处理 HTTP 请求和响应即可。

1.3 WSGI层

WSGI 是一种接口协议,它只适用于Python语言,其全称为Web Server Gateway Interface,即Web 服务器网关接口,它定义了web服务器和 web应用之间的接口规范。只要 web服务器和 web应用都遵守WSGI协议,那么 web服务器和 web应用就可以随意的组合,也可以将 WSGI 理解为沟通服务器与应用程序之间的一座桥梁。

2.服务器环境搭建

服务器操作系统选用目前流行的Linux发行版Ubuntu,Web框架采用Flask,Web服务器使用NginX,WSGI使用Python语言实现的uWSGI。Nginx是高效的Web服务器和反向代理服务器,可以用作负载均衡,与 Apache相比,Nginx支持高并发,可以支持百万级的TCP连接,十万级别的并发连接,部署简单,内存消耗少,成本低。Nginx支持uWSGI 的uwsgi协议,因此我们可以将Nginx与uWSGI结合起来,Nginx通过uwsgi_pass将动态内容交给uWSGI处理。

3.Web应用的部署过程

3.1 配Python程序

首先要在服务器上创建程序目录,然后修改目录权限,之后复制程序代码,创建log目录及虚拟目录。

3.2 安装ngnix

在ubuntu终端执行:

sudo apt-get install nginx

安装好以后,可直接用Nginxstart命令启动,出现欢迎界面,说明nginx启动成功了。

3.3 安装配置uWSGI

在python下,可以直接使用命令pip install uwsgi安装。之后写好配置文件就可以启动。一下是一个配置文件uwsgi.ini的例子:

用命令行工具启动uWSGI服务器:uwsgi --ini /path/…/uwsgi.ini

3.4 配置 nginx

现在uwsgi这个Web Server已经启动起来了,接下来设置Nginx。Nginx的配置文件是/etc/nginx/nginx.conf,这个配置文件中又引用了/etc/nginx/conf.d/和/etc/nginx/sitesenabled/这两个文件夹的配置文件,通过include来实现。所以,无论是直接在nginx.conf或者在conf.d、sites-enabled中配置都是可以的。

以上是一般的nginx反向代理的配置,如果使用http协议的话,与代理其它服务器的方式并无不同。

4.集成Nginx和uWSGI

直接通过在站点配置文件中为location配置uwsgi_pass,即 可 将Nginx与uWSGI集 成,建 立 一 个 基 于Nginx+Python+uWSGI的正式站点。启动后,输入你的服务器IP地址,就可以直接访了。部署也就完成了。

5.总结

Web服务器是连接用户浏览器与Python服务器端程序的中间节点,在网站建立的过程中起着重要的作用。Nginx是由俄罗斯工程师开发的一个高性能HTTP和反向代理服务器,它以运行稳定、配置简单、资源消耗低而闻名。应用Nginx+Python+uWSGI可以快速地建立网站服务器,从而实现高效、稳定的网络应用。

猜你喜欢

配置文件应用程序客户端
你的手机安装了多少个客户端
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
媒体客户端的发展策略与推广模式
新华社推出新版客户端 打造移动互联新闻旗舰