点击上方“中兴开发者社区”,关注我们
每天读一篇一线开发者原创好文
▎作者简介
作者李小虎是程序语言的爱好者,崇尚用合适的语言做合适的事情。
本文展示了如何使用Python、HTML、Javascript进行化学效应,搭一个属于我们自己的网站。其中你会发现语言之间有很多相通性,当我们领悟了这种相同性,你会发现初学一门语言也没那么可怕, 这也就是为什么我敢从零开始去搭建网站的原因。
本文档适合初学者,用切身感受期望帮助初学者少走一些弯路,或产生一些启发。
DevOps的春风吹过,自动化工厂便如雨后春笋,蓬勃发展。而目前我们最大的痛点就是自动化工厂如此野蛮的生长,有的集中,有的却分散在各个物理位置,于是我就想搭建一个网站能够集中式的管理自动化工厂。
此前,我只粗浅的学过一点Python,前端开发的什么HTML、CSS、Javascript可谓是一窍不通,真正的是从零开始。由于只学过Python,自然而然,web应用我就采用了Python的Flask框架。
那么怎么部署这个网站呢,我百度了下,选取了“Nginx+Gunicorn+Flask”的方案。为什么呢?因为Flask虽然也有Http服务,但不支持多线程,所以为了方便就采用了Nginx和Gunicorn了。
那么这三者到底是个什么关系呢?
总的来说,客户端从发送一个 HTTP 请求到 Flask 处理请求,分别经过了 web服务器层(Nginx),WSGI层(Gunicorn),web应用层(Flask),这三个层次。
这里出现了一个新词“WSGI”,所谓WSGI,其全称为 Web Server Gateway Interface,只适用于 Python 语言。它定义了 web服务器和 web应用之间的接口规范。也就是说,只要 web服务器和 web应用都遵守WSGI协议,那么 web服务器和 web应用就可以随意的组合,我们可以把它理解为web服务器(Nginx)和web应用(Flask)之间的纽带。
下图展现了客户端发送HTTP请求的交互流程:
现在我们开始安装配置Nginx、Gunicorn和Flask了,运行环境为Linux。
一、安装
Nginx安装参考:https://wiki.zte.com.cn/pages/viewpage.action?pageId=38171708
Gunicorn和Flask都采用pip install的方式安装。
二、配置
1.配置Nginx,
更改/usr/local/webserver/nginx/conf/nginx.conf
location / {
#root html;
#index index.html index.htm;
proxy_pass http://127.0.0.1:5555; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
运行Nginx:/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
2.写一个“Hello World”的web应用
2.1 新建一个py文件,如:myapp.py
2.2 打开文件编写如下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
3.命令行启动Gunicorn: gunicorn -w 2 -b 127.0.0.1:5555 --chdir /home/myapp myapp:app
-w:表明启动几个线程处理http请求
-b:表明监听5555端口
--chdir:指向web应用所在的目录
myapp:app :myapp是web应用文件名,app是应用入口
现在你可以访问你部署web服务器的IP啦,当页面显示出“Hello World”是不是有点小小的成就了呢?