Flask+Vue+Nginx+uwsgi在阿里云ubuntu的部署(1ni)
!!!如果在过程中有一些报错的信息,只要看下报错信息,看不懂把错误信息百度一下就可以了,基本可以解决(第一篇博客,望理解) 因为前段时间买了服务器,索性就玩一下,前端是用Vue写的,后台用Flask写接口,nginx作为服务器。1.cmder远程登入阿里云ssh root@ip2.设置python的默认环境,阿里云已经安装了 python2,3;因为我的flask是在pytho...
!!!如果在过程中有一些报错的信息,只要看下报错信息,看不懂把错误信息百度一下就可以了,基本可以解决(第一篇博客,望理解)
因为前段时间买了服务器,索性就玩一下,前端是用Vue写的,后台用Flask写接口,nginx作为服务器。
1.cmder远程登入阿里云
ssh root@ip
2.设置python的默认环境,阿里云已经安装了 python2,3;因为我的flask是在python3下写的所以要设置默认python3的环境
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
这是输入 python 就会显示默认python环境的版本了
3.安装pip
sudo apt-get update
sudo apt-get upgrade(环境更新一下,有提示就确认 ok就行,避免安装pip出错,所以先更新一下)
安装pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
可以pip -V查看是否安装成功
4.安装虚拟环境
sudo pip install virtualenv
sudo easy_install virtualenvwrapper
进入到你要安装的位置 virtualenv flask(名字自己取)
激活虚拟环境 source flask/bin/activate
退出的话就是 deactiavte
安装Flask依赖
pip install (根据需要安装)
然后把flask项目贴进去就好了
5.安装 mysql
sudo apt-get install mysql-server (这条命令会让你输入数据库的密码,不要忘记了)
sudo apt insps -ef|grep pythontall mysql-client
sudo apt install libmysqlclient-dev
对数据库的另外一些配置,自己百度就好了
6.安装nginx
sudo apt-get install nginx
这样就安装完毕了,现在可以 命令 nginx
在浏览器输入IP地址,会看到
说明nginx已经启动了
这时候我们将 npm run build的vue文件传到服务服务器
然后在 打开/etc/nginx/sites-enabled里面的default 滑到最下面,把server上面的全删掉,
只保留
server {
listen 80;
listen [::]:80;
server_name loaclhost; #要修改成localhost
root /home/file/; #这里是打包好的vue的文件地址
index index.html index.html; #加载index
location / {
try_files $uri $uri/ =404;
}
}
这时候要重启下nginx服务
nginx -s stop
nginx
nginx -s reload
这时候就可以在浏览器输入 服务器的IP,就可以访问到了
7.前端完成后开始完成后端
当初我以为后台只要 nohup一下就好了 真的是太天真了
我们先安装一下 uwsgi
WSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
我们要先进入我们的虚拟环境 然后 pip install uwsgi 安装一下就好了
接下来就是配置我们的 uwsgi和nginx
先在我们的flask项目下面新建 uwsgi.ini 文件
具体内容
[uwsgi]
socket = 0.0.0.0:8080
pythonpath = /home/flask/API
module = API
wsgi-file = /home/flask/API/API.py
callable = app
processes = 4
threads = 2
daemonize = /home/flask/API/server.log
socket不是我们真是访问的http 这只是我们 app.run() 里面的参数 比如我的就是 host=‘0.0.0.0’ post=8080
pythonpath是我们项目的路径
module是路口文件 我定义的是API.py (大部分人是manage.py)
wsgi-file是脚本文件
callable 是实例名称,app = Flask(__name__) 这个没人反对吧
processes 是进程数
threads是线程数(每个进程会开两条线程)
daemonize是日志文件 应该不陌生吧
接下来配置Nginx
打开/etc/nginx/sites-enabled里面的default
同样也要开一个 server ,其实只要在最下面加上
server {
listen 81; #默认的web访问端口
server_name loaclhost; #服务器名
location / {
include uwsgi_params; #这里是导入的uwsgi配置
uwsgi_pass 0.0.0.0:8080; #需要和uwsgi的配置文件里socket项的地址
#相同,否则无法让uwsgi接收到请求。
uwsgi_param UWSGI_CHDIR /home/flask/API; #项目根目录
uwsgi_param UWSGI_SCRIPT API:app; #启动项目的主程序(在本地上运行
#这个主程序可以在flask内置的
#服务器上访问你的项目)
}
}
这是访问 我们的IP地址 加81端口 就能访问,但是返回了502,因为我们的 uwsgin还没有启动
这时候我们在对应的路径下输入
uwsgi --ini /home/flask/API/uwsgi.ini(切记一定要进入相对应的虚拟环境)
假如我们要修改项目的话,删掉进程,重新启动就好了。
更多推荐
所有评论(0)