前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu18.04部署python3、nginx项目

ubuntu18.04部署python3、nginx项目

原创
作者头像
青年码农
发布2020-10-13 13:27:32
7390
发布2020-10-13 13:27:32
举报
文章被收录于专栏:青年码农青年码农

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

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

1.安装依赖包

代码语言:javascript
复制
sudo apt install python3-pip
sudo apt install build-essential python-dev python-setuptools
sudo apt install build-essential python3-dev  python3-setuptools

2.安装virtualenv

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

  • 在没有权限的情况下安装新套件
  • 不同应用可以使用不同的套件版本
  • 套件升级不影响其他应用
代码语言:javascript
复制
pip3 install virtualenv

查看是否安装成功

代码语言:javascript
复制
virtualenv --version
ubuntu18.04部署python3、nginx项目
ubuntu18.04部署python3、nginx项目

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

ubuntu18.04部署python3、nginx项目
ubuntu18.04部署python3、nginx项目

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

代码语言:javascript
复制
virtualenv venv

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

代码语言:javascript
复制
source venv/bin/activate

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

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

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

已经放到requirements.txt文件里,

代码语言:javascript
复制
pip install -r requirements.txt

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

4.安装并配置uWSGI

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

代码语言:javascript
复制
pip install uwsgi

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

代码语言:javascript
复制
vim config.ini

文件内容

代码语言:javascript
复制
[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 类 。

ubuntu18.04部署python3、nginx项目
ubuntu18.04部署python3、nginx项目

可以运行测试下

代码语言:javascript
复制
uwsgi config.ini

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

5.安装 Supervisor

代码语言:javascript
复制
sudo apt-get install supervisor

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

代码语言:javascript
复制
/etc/supervisor/supervisor.conf

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

代码语言:javascript
复制
[program:busAPI]
# 启动命令入口command=/opt/busAPI/venv/bin/uwsgi /opt/busAPI/config.ini
# 命令程序所在目录directory=/opt/busAPI#运行命令的用户名user=root   autostart=trueautorestart=true
#日志地址stdout_logfile=/var/log/uwsgi_supervisor.log

启动和终止服务

代码语言:javascript
复制
# 启动服务
sudo service supervisor star
# 终止服务
sudo service supervisor stop
# 查看状态
sudo service supervisor status

6.安装 Nginx

代码语言:javascript
复制
sudo apt-get install nginx

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

代码语言:javascript
复制
/etc/nginx/sites-available/default
ubuntu18.04部署python3、nginx项目
ubuntu18.04部署python3、nginx项目

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

代码语言:javascript
复制
sudo service nginx restart

Nginx服务命令

代码语言:javascript
复制
# 启动
sudo service nginx start
# 停止
sudo service nginx stop
# 重启
sudo service nginx restart
# 查看状态
sudo service nginx status

7.总结

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

获取更多优质内容,请关注【青年码农】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动和终止服务
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档