百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

ubuntu18.04部署python3、nginx项目

nanshan 2024-11-17 14:12 10 浏览 0 评论

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

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

1.安装依赖包

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 能够做到:

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

查看是否安装成功

virtualenv --version

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

安装虚拟环境,名字叫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):

[program:busAPI]
# 启动命令入口
command=/opt/busAPI/venv/bin/uwsgi /opt/busAPI/config.ini

# 命令程序所在目录
directory=/opt/busAPI
#运行命令的用户名
user=root
   
autostart=true
autorestart=true
#日志地址
stdout_logfile=/var/log/uwsgi_supervisor.log

启动和终止服务

# 启动服务
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.总结

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

相关推荐

服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下

Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...

服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复

服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...

服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例

服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...

「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复

服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...

服务器数据恢复-ESXi虚拟机被误删的数据恢复案例

服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...

「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例

服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...

服务器数据恢复—基于oracle数据库的SAP数据恢复案例

服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...

「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例

服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...

服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例

服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...

服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案

RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...

「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例

服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...

服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?

服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...

服务器数据恢复—Linux+raid5服务器数据恢复案例

服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...

服务器数据恢复—Sql Server数据库数据恢复案例

服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...

服务器数据恢复—阿里云ECS网站服务器数据恢复案例

云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...

取消回复欢迎 发表评论: