ubuntu18.04安装部署python3、nginx、Flask项目

简介: ubuntu18.04安装部署python3、nginx、Flask项目

昨天服务器开了一个新管理员账号,用的弱口令,导致被黑了,ssh也不能登录,没办法,只能重装系统,还好没重要资料,服务器上只跑了一个公交的api和博客,早上重装了系统,环境从新搭建,记录下。

服务器是腾讯云的,系统是ubuntu18.04,自带python2和python3,我的项目是基于python3的,所以可以直接使用。

1.安装依赖包

sudo apt install python3-pipsudo apt install build-essential python-dev python-setuptoolssudo apt install build-essential python3-dev  python3-setuptools

2.安装virtualenv

Virtualenv用来建立一个虚拟的python环境,可以为每个Python应用创建独立的开发环境,使他们互不影响,Virtualenv 能够做到:

  • 在没有权限的情况下安装新套件
  • 不同应用可以使用不同的套件版本
  • 套件升级不影响其他应用


pip3 install virtualenv

查看是否安装成功

virtualenv --version

image.gif

安装成功,接下来就要使用它了,我的项目是个api服务,我把我的项目文件放在/opt下,文件名为busAPI,我把我的项目文件都放在里面

image.gif

安装虚拟环境,名字叫venv,必须进入到项目目录里,

virtualenv venv

在项目目录下就会建立一个新的 venv 目录,里面就是运行python 的基本环境的工具与指令和包。然后启用该环境。

source venv/bin/activate

调用 activate 指令后命令符前就会出现 (venv) 字样。可通过 deactivate 退出虚拟环境。

3.安装项目的依赖(Flask框架)

我的项目文件已经上传到目录里,但是项目依赖还没有安装,安装依赖,我的依赖文件

已经放到requirements.txt文件里,

pip install -r requirements.txt

这样安装依赖文件比较方便,如果依赖少,可以一个一个安装。

4.安装并配置uWSGI

此时我们已经在虚拟环境中,直接安装uWSGI

pip install uwsgi

在项目根目录新建config.ini文件

vim config.ini

文件内容

[uwsgi]
# uwsgi 启动时所使用的地址与端口socket = 127.0.0.1:8001 
# 指向网站目录chdir = /opt/busAPI/
# python 启动程序文件wsgi-file = run.py
# python 程序内用以启动的 application 变量名callable = app
# 处理器数processes = 4
# 线程数threads = 2
#状态检测地址stats = 127.0.0.1:9191

注释已经很明显,只解释下callable=app 这个 app 是 run.py 程序文件内的一个变量,这个变量的类型是 Flask的 application 类 。

可以运行测试下

uwsgi config.ini

但这只是命令启动形式,要使其随同服务器启动并作为后台服务运行才是运营环境的实际所需要。因此接下来我们需要安装另一个工具来引导 uwsgi 。

5.安装 Supervisor

sudo apt-get install supervisor

Supervisor 的全局的配置文件位置在:

/etc/supervisor/supervisor.conf

正常情况下我们并不需要去对其作出任何的改动,只需要添加一个新的 *.conf 文件放/etc/supervisor/conf.d/就可以,那么我们就新建立一个用于启动 busAPI 项目的 uwsgi 的 supervisor 配置 (命名为:busAPI.conf):

启动和终止服务

# 启动服务sudo service supervisor star# 终止服务sudo service supervisor stop# 查看状态sudo service supervisor status

6.安装 Nginx


sudo apt-get install nginx

配置Nginx,我们修改default这个文件

/etc/nginx/sites-available/default

默认是80端口,这里我没有使用80,因为小程序必须要https,所以我配了443端口,重启下Nginx


sudo service nginx restart

Nginx服务命令

# 启动sudo service nginx start# 停止sudo service nginx stop# 重启sudo service nginx restart# 查看状态sudo service nginx status

7.总结

记录下从无到有的过程,中间也遇到不少的坑,但是最终还是运行成功。总结下,方便日后查找。


相关文章
|
7天前
|
缓存 前端开发 JavaScript
flask各种版本的项目,终端命令运行方式的实现
flask各种版本的项目,终端命令运行方式的实现
|
1月前
|
机器学习/深度学习 人工智能 开发工具
人工智能项目的python版本管理工具DVC
dvc即data version control, 是一种针对人工智能项目(机器学习或者深度学习)的数据版本管理工具。DVC的操作和GIT类似,可以认为为GIT的二次开发封装。结合GIT,DVC可以有效的管理人工智能项目的整个流程,包括代码,数据,训练配置,模型【2月更文挑战第12天】
69 1
|
2月前
|
缓存 前端开发 测试技术
(译)Python 官方团队在打包项目中踩过的坑
(译)Python 官方团队在打包项目中踩过的坑
32 2
|
2月前
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
2月前
|
数据可视化 API 开发者
通俗易懂:一步步教你 Flask 项目自动生成 API 文档
Flasgger,作为一款强大的 Flask 扩展,自动从 Flask 应用中提取并生成 OpenAPI 规范文档,配备 SwaggerUI,为开发者提供了一条快捷通道,让 API 的文档编制和交互式测试变得简单易行。Flasgger 的设计原则是简化开发流程,通过与 Flask 框架的无缝整合,让开发者可以更专注于应用逻辑的构建。
|
2月前
|
负载均衡 Ubuntu 应用服务中间件
|
25天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
100 0
|
28天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
15 4
|
1月前
|
前端开发 应用服务中间件 nginx
nginx中配置不输入端口(指定地址)访问项目的方法
nginx中配置不输入端口(指定地址)访问项目的方法
27 0
|
1月前
|
Linux 数据库连接 数据库
Python如何将项目直接打包为一键整合包
Python如何将项目直接打包为一键整合包
41 0