首先,自己是一个连 linux 都不了解的小白级别,开始了艰苦的部署之路
下载地址:https://www.ubuntu.com/download;
一开始不知道,直接下载了 ubuntu server,安装到虚拟机后才发现,是纯命令行界面,瞬间傻眼,本来就不懂,还来纯命令,果断去搜索怎么安装桌面界面,一番搜索之后,失败,麻烦
在 ubuntu 下载页面继续研究,偶然点入 ubuntu flavours,终于发现不是有已经集成桌面界面的 ubuntu 了,
地址:https://www.ubuntu.com/download/flavours;
这次选择了下载 Ubuntu GNOME,不要问我为什么选它,百度一下感觉这个比较正常而已!!
安装完成之后,发现 py3 已经在里面了,非常开心,又不用愁 py 的各种啪啦吧啦安装,反正对于小白什么安装都坑
当你想运行 python
$ python
发现运行的是 py2 版本,擦;百度一下之后,输入下面命令(前提是下面目录下存在 python3)应该就可以切换 py 的默认版本了
$ alias python='/usr/bin/python3'
当你想
$ pip install flask
发现是安装到 py2 那里去了,又一顿绝望了;这时候你可以运行下面命令,安装 pip3
$ sudo apt-get remove python3-pip
安装成功之后,输入下面命令,应该就可以安装 py3 的 flask 库了
$ pip3 install flask
还有个问题?就是在虚拟环境中怎么安装第三方库呢?又搜索了一番,感觉好麻烦啊
打开到虚拟环境 pip 的目录下,执行:./pip install pyyaml(试了一下,发现确实可以安装 yaml)
先简单介绍一下:Gunicorn 绿色独角兽 是一个 Python WSGI UNIX 的 HTTP 服务器。这是一个 pre-fork worker 的模型,从 Ruby 的独角兽(Unicorn )项目移植。该 Gunicorn 服务器大致与各种 Web 框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。
$ pip install gunicorn
如无意外,应该安装成功了,然后弄个最简单的 flask 出来去试一试
# wsgi.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hellow'
if __name__ == '__main__':
app.run()
然后运行下面命令
$ gunicorn -w 4 -b 127.0.0.1:8080 wsgi:app
好了,==这个 wsgi:app 参数就很好理解了, 分两部:wsgi 就是引导用的 python 文件名称(不包括后缀/模块名)app 就是 Flask 实例的名称==。这样 gunicorn 就会找到具体要 host 哪一个 flask 实例了。
从这里开始就可以体现 gunicorn 的好了,我们根本不用配什么配置文件的,一个指令就可以将它起动
安装:
$ sudo apt-get install nginx
如无意外就直接安装成功了,启动的时候被坑了一下,当时一直运行命令:sudo nginx start 一直报错,然后又按照报错信息搜索一下还是没解决;最后发现是要执行
service nginx start
确实被坑得不轻,这是打开浏览器输入 localhost,应该会出现 welcome to nginx 的东西了
先上 nginx 的配置
server {
listen 80;
server_name 192.168.238.144:8010;
charset utf-8;
client_max_body_size 75M;
location / {
root /home/fke/TesterWeb/dist;
index index.html;
location /api{
proxy_pass http://192.168.238.144:8080/;
}
}
}
server_name:就是个 IP 地址了
root vue 打包后直接把 dist 文件丢进 ubuntu 后的地址
index index.html;(按这里的意思应该就是访问 server_name 的时候就打开 dist 里面的 index.html 文件了)
location /api{proxy_pass http://192.168.238.144:8080/;} ;这个就是跨域问题了,当你前端发协议地址是有/api 时,就跳转到http://192.168.238.144:8080/
先把这个文件存到你 flask 项目的根目录吧(起个名字:flaskapi.conf),然后简单粗暴直接删除 nginx 的配置文件
$ sudo rm /etc/nginx/sites-enabled/default
然后软连接到 nginx 配置中(地址的一个坑,一般看桌面界面感觉地址就是:/home/TesterWeb/flaskapi.conf,其实输入 pwd 查看目录时,就会多一个用户路径进出/home/fke/TesterWeb/flaskapi.conf)
$ sudo ln -s /home/fke/TesterWeb/flaskapi.conf /etc/nginx/conf.d/
gunicorn:192.168.238.144:8080 这个要和 nginx 配置的跨域 proxy_pass 要一致,(把先前上面的一些运行什么的都关闭,或则重启最方便) 然后输入下面命令后,如无意外,就可以打开浏览器输入 nginx 里配置的 server_name 来查看是否正常运行了
$ gunicorn -w 4 -b 192.168.238.144:8080 wsgi:app
$ service nginx start