美文网首页
腾讯云服务器配置Flask运行环境笔记(CentOS+Nginx

腾讯云服务器配置Flask运行环境笔记(CentOS+Nginx

作者: Apri | 来源:发表于2017-11-01 23:07 被阅读372次

天气越来越热了,烧烤摊越来越难经营,追的美剧也季终了。没事干咋办?搞软件开发吧,要成为烧烤王的男人,只有借助APP来帮忙了。
要用手机APP来卖烧烤,需要一个服务器后端来提供数据支持。于是无厘头的选择了Python来开发后端。烧烤一天只卖出两三串,没钱买台服务器啊。上网一搜,发现近期各互联网企业都在搞云服务,随便选了一个腾讯云的。
操作系统CentOS最高版本为7.2(没有7.3),凑合用吧。首先安装好必要的依赖,升级到Python 3.6.1,在pip各种需要的包后开始本文的正题:

1. 安装uWSGI

pip install uwsgi
安装后的文件路径应该在:/usr/local/python3/bin/uwsgi
为了方便运行,建立快捷方式:
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

2. 配置uWSGI

建立一个存放项目文件的文件夹,如:
cd /
mkdir webapis
将要运行的文件,如:myapi.py放入webapis文件夹
此时可以通过命令来启动uWSGI了:
uwsgi --socket 127.0.0.1:8001 --chdir /webapis --wsgi-file myapi.py --callable app --processes 1 --threads 2 --stats 127.0.0.1:9191
参数这么一长串,比我每天卖的串串还多,每次运行真麻烦。阅读官方文档,发现还可以通过建立的参数文件来启动uWSGI:
cd /
touch uwsgi.ini
vim uwsgi
进入编辑器,按i进行编辑,输入:

[uwsgi]
socket=127.0.0.1:8001
chdir=/webapis
wsgi-file=myapi.py
callable=app
processes=1
threads=2
stats=127.0.0.1:9191

按ESC之后输入:wq保存退出

3. 启动uWSGI

uwsgi /uwsgi.ini

4. 安装Nginx

yum install -y nginx

5. 配置Nginx

修改Nginx配置文件,连接uWSGI
vim /etc/nginx/nginx.conf
找到如下位置,修改箭头的部分

……
server {
        listen      80 default_server;
        listen      [::]:80 default_server;
      > server_name  123.123.123.123;        #填入服务器外网IP
        root        /usr/share/nginx/html;

        #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参数文件中设置的内网地址和端口
            > uwsgi_param UWSGI_CHDIR /webapis;        #项目文件夹
            > uwsgi_param UWSGI_SCRIPT myapi:app;        #运行文件名和app实例名
        }
        error_page 404 /404.html;
        location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
}
……

:wq保存退出

6. 运行Nginx:

启动:
nginx
或重启:
nginx -s reload
在浏览器中输入你的服务器IP+API路径,应该能看到运行结果了。
服务器配置成功,下一步开始设计我的iOS应用和后端API了。

7. 修改程序后重启uWSGI

修改程序并上传到项目文件夹内,发现服务不能立即生效,需要重启uWSGI服务。
列出运行的uWSGI进程
ps -ef | grep uwsgi

root 6270 6175 0 23:34 pts/0 00:00:00 uwsgi /uwsgi.ini
root 6275 6270 0 23:34 pts/0 00:00:00 uwsgi /uwsgi.ini
root 6842 6689 0 23:42 pts/1 00:00:00 grep --color=auto uwsgi

找到运行命令为:uwsgi /uwsgi.ini的两条,发现有共同的ID:6270,于是:
kill -9 6270
ps -ef | grep uwsgi
只剩下:

root 6975 6689 0 23:44 pts/1 00:00:00 grep --color=auto uwsgi

然后运行:
uwsgi /uwsgi.ini
在浏览器中刷新页面,修改生效。

相关文章

网友评论

      本文标题:腾讯云服务器配置Flask运行环境笔记(CentOS+Nginx

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