记录在阿里云部署flask项目

618心血来潮买了一台阿里云服务器,准备吧自己写的flask接口布置上去,我买的服务器是最低配的,选择的时centos864位系统,物料准备好了,开始弄

1.阿里云的centos8自带python3和pip3,所以我就用现成的,首先安装项目的虚拟运行环境,我用的是root账号,在/usr/local下面新建一个文件夹,名字自己写,我用的是soft(其实放哪都行,我习惯这样做),然后切换到soft文件夹,执行pip3 install virtualenv

2.进入自己的项目文件夹,比如我的项目文件在/usr/local/soft,然后用git拉取自己远端的代码到本地,此时我的目录就多了一个文件夹,我的文件夹名称叫flask_backend,里面存放着项目代码,然后执行  virtualenv  venv生成一个虚拟环境,(venv可以是别的名称,他只是虚拟环境的名称)这一步执行完你会发现目录下多出来一个文件夹加venv

3.执行source venv/bin/activate ,此时会进入虚拟环境中,里面就是运行python 的基本环境的工具与指令和包,执行这个命令后前面会出现一个venv的标志,进入虚拟环境后,执行 deactivate 可以退出虚拟环境

4.在虚拟环境中安装uwsgi,flask使用uwsgi这种方式配置比较多,执行pip3 install uwsgi  进行安装

5.在虚拟环境中安装项目依赖    进入项目目录,我的项目中已经生成了requirements.txt 文件,直接执行pip3 -r install requirements,执行完毕后虚拟环境中就安装好该项目的插件了

6.执行deactivate,退出虚拟环境,此时我们在项目目录下,给大家看一下我的项目结构,manage.py是项目入口文件,App存放着业务代码

7.在该目录下新建一个uwsgi.ini文件,内容如下,

socket 字段是nginx配置中用到的,端口号和ip可以自定义,但是本人这样写肯定能通

chdir表示项目路径,要换成你自己的项目路径

wsgi-file 就是项目入口文件

callable 程序内用以启动的 application 变量名,一般都叫app,只要在项目里按标准写就不会有问题

processes 和threads分别表示处理器数和进程数

daemonize 是日志文件,

pidfile是启动时的pid 文件,这个文件在项目目录下,自己新建一个叫uwsgi.pid文件内容写自己的pid号就行了,如右下图

[uwsgi]

# nginx

socket=0.0.0.0:8000

# http server

#http=0.0.0.0:8000

# project path

chdir=/usr/local/soft/flash_backend

# wsgi  manage ru kou

wsgi-file=manage.py

# router 

callable=app

# common

processes=2

threads=2

master=True

pidfile=uwsgi.pid

daemonize=uwsgi.log

8.运行 uwsgi,在项目目录下执行 uwsgi  uwsgi.ini 就启动了,有的文章下一步就是安装supervisor,但是不安装也可以,本人安装没成功,先省略这一步,因为不安装它也不影响服务的部署,当有新代码上传时,要重启uwsgi,不然代码不会生效,

重启命令  uwsgi --reload uwsgi.pid   停止命令  uwsgi --stop uwsgi.pid

9.安装nginx,我的这个步骤只适合centos8系统安装,其他系统可能不适用

首先检查系统有没有安装gcc,因为nginx是用c语言写的,输入gcc -v命令,如果出现以下提示,说明安装的有

否则需要安装gcc,安装命令

以下命令依次执行即可

yum -y install gcc (如果有gcc,不用执行这一条)

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel

然后就开始正式安装nginx了,使用wget 下载安装包,如果没有wget,用yum -y install wget 安装一下

切换到/usr/local目录,执行下面命令

wget http://nginx.org/download/nginx-1.18.0.tar.gz

下载完成后执行 tar -xzvf  nginx-1.18.0.tar.gz 解压

使用whereis  java 命令,查找一下自己的java安装在哪(需要先安装java,才能安装nginx),比如我的安装在/usr/java

然后切换到   /usr/java  这个文件夹,ls一下,你会发现文件夹下多了一个nginx目录

进入该目录,依次执行下面三个命令

  1. ./configure

  2. make

  3. make install

执行完毕后, 切换到/usr/local这个文件夹,ls一下,会发现多了一个nginx目录,进入该目录下的conf文件夹

编辑nginx.conf 文件,修改server_name

server_name是阿里云的外网ip

uwsgi_pass是前面uwsgi.ini中配置的socket字段,要保持一样

uwsgi_param UWSGI_PYHOME /usr/local/soft/venv;   表示虚拟环境的目录

uwsgi_param UWSGI_CHDIR  /usr/local/soft/flash_backend; 表示项目目录

uwsgi_param UWSGI_SCRIPT manage:app; 表示项目入口文件

 

 

server {

        listen       80;

        server_name  xxxxxxxx;

        #charset koi8-r;  

        #access_log  logs/host.access.log  main;

        location / {

                include      uwsgi_params;

                uwsgi_pass      0.0.0.0:8000;

                uwsgi_param UWSGI_PYHOME /usr/local/soft/venv;

                uwsgi_param UWSGI_CHDIR  /usr/local/soft/flash_backend;

                uwsgi_param UWSGI_SCRIPT manage:app;

        }

编辑完毕后,启动nginx,启动方法进入到sbin文件夹

执行 ./nginx  就启动了,可以通过ps -ef|grep  nginx查看是否启动,下图为启动状态

./nginx -s reload  重新载入配置文件
./nginx -s stop   停止nginx
./nginx -s reopen  重启nginx

然后用jmete测试服务器是否畅通,可以看到已经成功了!!!

小贴士:服务器默认对外开放端口是80,需要再服务器防火墙打开80端口,还要在阿里云服务器管理平台--安全组里添加80对外开放,具体方法可以自己百度

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值