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

昨晚开了个腾讯云,做一个店群的在线商品库。这是我第一次使用云服务器,第一次接触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了,这一个领域,不再是完全未知。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容