美文网首页
腾讯云centos7.4部署nginx+uwsgi+flask总

腾讯云centos7.4部署nginx+uwsgi+flask总

作者: 以观沧海2018 | 来源:发表于2018-06-08 23:40 被阅读0次

    昨晚开了个腾讯云,做一个店群的在线商品库。这是我第一次使用云服务器,第一次接触centos,第一次配置服务器环境。花了六七个小时才搞定,遇到很多坑,很多问题非常小白,还是很有趣的经历,特此记录。

    用的系统是CentOS 7.4 64位。

    1、Python3.65。

    准备编译环境。

    yum groupinstall 'Development Tools'

    yum install zlib-devel bzip2-devel  openssl-devel ncurses-devel

    yum install sqlite-devel

    sqlite-devel 第一次没有先安装,是个大坑。nginx+uwsgi设置好以后,运行报错,找不到模块sqlite3。重头再来。

    下载Python3.6.5

    wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

    创建目录,解压,编译

    sudo mkdir /usr/local/python3

    tar -zxvf Python-3.6.5.tgz

    cd Python-3.6.5/

    ./configure --prefix=/usr/local/python3

    make

    make install

    Linux里原来的python命令还是指向Python2,这里创建python3的软链接指向Python3,这样Python2和Python3就都可以用了。

    也保留pip指向Pip2,创建pip3的软链接指向Pip3

    ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

    pip3 install --upgrade pip 

    2、uwsgi

    pip3 uwsgi

    uwsgi 这里花了最多的时间,其实是一个小问题,目录设置的问题。但是因为第一次配置,对于目录设置连猜带蒙,设置错了导致运行报错,无法导入APP模块。

    flask项目文件放置在 /root/www/app/ 下面。

    在此目录下创建uwsgi.ini

    cd www/app/

    vim uwsgi.ini

    按i进入编辑模式。

    配置文件如下:

    [uwsgi]

    socket = 127.0.0.1:8001     

    chdir = /root/www/ 

    wsgi-file = run.py       

    callable = app              

    processes = 1             

    threads = 2  

    master = true               

    stats = 127.0.0.1:9191

    按esc, :wq退出。

    chdir 要写上一级目录,我第一次设置为/root/www/app 导致无法运行,from app import app ,找不到app模块。

    此目录下

    uwsgi uwsgi.ini

    以ini配置启动服务。

    如果配置有更改,需要重启服务——

    查看进程:ps -ef|grep uwsgi

    杀死进程:killall -9 uwsgi

    重新运行 uwsgi uwsgi.ini

    3、nginx

    yum install nginx

    编辑配置文件。

    vim /etc/nginx/nginx.conf

    就简单配置了一下。如下:

    server {

            listen       80 default_server;

            listen       [::]:80 default_server;

            server_name  你的云服务器公网IP;

            root         /root/www/app;

            # Load configuration files for the default server block.

            include /etc/nginx/default.d/*.conf;

            location / {

            include     uwsgi_params;

            uwsgi_pass  127.0.0.1:8001;

            uwsgi_param UWSGI_SCRIPT run:app;

          }

    root目录输入nginx 启动服务。

    重启命令:nginx -s reload

    至此配置完毕,用WinSCP把本地app文件夹上传到/www/app。输入公网IP,网站正常运行。

    如果报错403,试一下python3 import sqlite3 如果报错,说明sqlite3没有安装上。进入Python-3.6.5文件夹,使用下面命令重新安装Python3.6.5。

    ./configure --enable-loadable-sqlite-extensions

    make

    make install

    完毕。很多事情没有想像中难,一直想搞一个云服务器,总以为会很麻烦,并且很贵。真正去了解了,实施了,发现不过如此。找了个学生证,带域名128一年,花了一个工作日的时间,部署完毕,虽然只是一个小CASE,对于个人来说,技能GET了,这一个领域,不再是完全未知。

    相关文章

      网友评论

          本文标题:腾讯云centos7.4部署nginx+uwsgi+flask总

          本文链接:https://www.haomeiwen.com/subject/ljpzsftx.html