阿里云配置Flask项目

主要是写好的Flask项目想配置在阿里云上太麻烦了,网上的教程没有一个完整好用的,重置了3次系统后终于弄好了,这个得赶紧记录一下。

主要是参考这篇幅文章配的,但是没有新建新的用户,进程也改成了1,

https://zhuanlan.zhihu.com/p/22126999

1.先安装Python的pip 和Virtualenv
(这一步主要是为服务安装虚拟环境)

apt install python3-pip
pip3 install virtualenv

2.上传自己的项目在/home/www 目录下面(用Filezilla,sftp连接到服务器,用户名用root就行),咱上传的是SM3
注意:后面说的根目录就指的是:/home/www/SM3(你的项目)

3.安装Gunicorn
(这一步的作用是为你的项目开启多个进程,支持更多人的访问)
先进入虚拟环境:

source venv/bin/activate 

可以用 python -V测试一下是否在虚拟环境下(如果是3版本的就是)

安装Gunicorn:pip install gunicorn

4.配置Gunicorn:
4.1新建一个名为gunicorn.conf 的配置文件

vim gunicorn.conf

4.2输入:

# 进程为1,因为3的话会导致数据库无法实时更新。
workers = 1 
# 监听本地8000端口,之后这个端口来的就是看这个网站的。 
bind = '127.0.0.1:8000'

这里端口号可以自己定,后面也会写,写一样的就行

4.3保存文件
4.4安装依赖pip install -r requirements.txt
这里可以直接进入项目的根目录,直接用python xxx.py 启动试一下,看看目前能不能在默认的5000端口跑起来。
(如果你想在本地浏览器看结果的话,还得在阿里云开启 ‘安全组’里面的端口,以及使用0.0.0.0:5000才能哦。)

4.5在网站根目录下新建一个名为logs的文件夹,留以后用:

mkdir logs

5.安装Supervisor
(这一步是为你的项目加一个监听,如果服务器重启了它可以自动的重启你的项目)

apt install supervisor

5.1配置Supervisor:
转到Supervisor的配置文件目录:

cd /etc/supervisor/conf.d/

新建并打开一个名为SM3.conf的配置文件(名字无所谓):

touch blog.conf
vim blog.conf

输入如下配置内容:

# 进程的名字,取一个以后自己一眼知道是什么的名字。
[program:blog] 
# 定义命令。你只要注意后面的目录对就行。
command=/home/www/SM3/venv/bin/gunicorn SM3:app -c /home/www/SM3/gunicorn.conf
# 网站跟目录
directory=/home/www/SM3
# 进程所属用户。
user=root
# 自动重启设置。
autostart=true
autorestart=true
# 日志存放位置。
stdout_logfile=/home/www/blog/logs/gunicorn_supervisor.log 

5.2保存文件
5.3加载并生效Supervisor配置:

sudo supervisorctl reread
supervisorctl update
sudo supervisorctl start SM3

如果看见类似于「already:started」这样的提示就说明成功了。

6.安装Nginx:
(web服务器,作为主要的入口)

sudo apt-get install nginx

如果出现安装失败的提示,尝试更新一下源:

sudo apt-get update

配置:
(1)cd /etc/nginx/sites-available/
这里可以删除默认的default文件
(2)vim SM3
(3)输入:

 server {  
        listen   80;  
        server_name 阿里云的IP或者域名都行;

        root /home/www/SM3;
        access_log /home/www/SM3/logs/access.log;
        error_log /home/www/SM3/logs/access.log;

        location / {  
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;  
            proxy_set_header Host $http_host;  
            proxy_redirect off;  
            if (!-f $request_filename) {  
                proxy_pass http://127.0.0.1:8000;  
                break;  
            }  
        }  
    }

如果你上面配置的时候不是8000端口记得改一下

(4)启用配置文件:
进入sites-enabled目录:

cd ../sites-enabled

建立引用之前配置文件的链接:

ln -s /etc/nginx/sites-available/SM3 ./SM3

查看一下链接是否成功建立:

ls -l

如果成功建立,能看到类似「XXX-> /etc/nginx/sites-available/xxx」这样一段信息。
最后:重启Nginx sudo service nginx restart

到这里就结束了。
有几点一定要注意:
1.如果你更新了项目文件,一定要重启Supervisor,命令如下:

sudo service supervisor stop
sudo service supervisor start
否则可能不能实时更新
2.阿里云安全组的端口开放要确认

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值