Flask 项目部署到阿里云服务器(Centons7)

由于最近才接触python flask web开发,在根据基于python的flask web开发实战学习一段时间后,成功的将个人博客项目完成,

这里主要是将我的项目部署到服务器的过程。

1. 将本地文件上传到服务器上,利用scp上传本地文件到服务器下,我的项目在服务器上的地址为 /var/www/ 下

当然你也可以使用github作为项目托管,可以方便你更新项目,当然也有助于你学习github的使用,

这时你的服务器上已经有了项目文件,接下来

1. 进入的你的项目根目录下,为了解决库依赖问题,我们先创建一个虚拟环境,输入virtualenv venv 就会创建一个名为venv的文件夹,使用source venv/bin/activate 启动虚拟环境。

2.利用pip install -r requirement.txt 安装所需要的依赖(在本地使用pip freeze > requirements.txt生成项目所需要的库)

3.启动uwsgi  使用pip install uwsgi 安装       uwsgi是一个web服务器,

 在项目根目录下创建一个config.ini文件

配置uwsgi文件

[uwsgi]

#uwsgi 启动时所使用的地址与端口`

socket = 127.0.0.1:5000

#指向网站目录

chdir = /var/www/myflask

# python 启动时程序文件

wsgi-file = /var/www/myflask/manage.py

#python 程序内用以启动的application 变量名

callable = app

#处理器数

processes = 4

#线程数

threads = 2

#状态检测地址

stats = 127.0.0.1:9191

启动 uwsgi config.ini

ctrl + c关闭

 

三. 安装nginx

yum install nginx

安装成功后 配置文件在/etc/nginx/目录下 ,nginx.conf 不用修改,进入到conf.d目录下,新建自己项目的配置文件*.conf

配置如下

server {

listen 80;

server_name ip;

 

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:5000;#指向uwsgi所应用的内部地址,所有请求将

转发给uwsgi处理

uwsgi_param UWSGI_PYHOME /var/www/myflask/venv;#指向虚拟环境目录

uwsgi_param UWSGI_CHDIR /var/www/myflask;#指向网站根目录

uwsgi_param UWSGI_SCRIPT manage:app; #指定启动程序

}

}

 

启动 sevice nginx restart 或者 nginx -c /etc/nginx/nginx.conf

关闭 nginx -s stop

启动nginx 后 启动uwsgi

这样就可以在浏览器商访问了

 

但是这样好像uwsgi不能关掉

这需要使用进程管理工具supervisor 来启动nginx

安装supervisor         yum install supervisor

配置文件在/etc/supervisord.conf

自己项目文件配置可以在/etc/supervisord.d下创建

[program:myflask]

 

#启动程序入口

command = uwsgi /var/www/myflask/config.ini

#命令程序所在目录

directory = /var/www/myflask

#运行命令的用户

user = root

autostart = true

autorestart = true

 

#日志地址

stdout_logfile = /var/www/myflask/logs/uwsgi_supervisor.log

 

启动 supervisord -c /etc/supervisord.conf

这时。会出现 Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord

 

查找 find / -name supervisor.sock

进入到/run/supervisor/supervisor.sock

输入unlink supervisor.sock

启动就ok

 

在部署到阿里云时,配置完后出现502错误,就是因为suoervisor没启动,找好多资料一步步检查才找到问题根源所在

 

你可能感兴趣的:(python,flask)