不需要使用sudo,因为virtualvenv没有权限要求。
上传项目文件
博主使用的linux连接工具是xshell,在之前的一篇文章中有讲如何上传文件到linux主机,这里不再详细说明,展示一下大概的项目结构以及启动文件manage.py
tree命令可以以树形图的形式展示文件结构,可以赋予参数设置树的深度,这里博主展示了2层安装命令:
#!/usr/local/flasky/venvpython
fromflask_scriptimportmanager,shell
app=create_app(os.getenv('flask_config')or'default')
manager.add_command("shell",shell(make_context=make_shell_context))
"""rundeploymenttasks."""
#app.run()
命令行运行flask项目
以上命令一般都是在开发环境进行调试的时候使用,或者注释掉“manager.run()”,使用“app.run()”,后者可以直接在pycharm中执行项目,这里不再详细说明
配置uwsgi
我们直接在flask的根目录下面新建一个文件“config.ini”,使用的方式是配置启动。文件内容如下
#uwsgi启动时所使用的地址与端口
home=/usr/local/flasky/venv
#python程序内用于启动的application变量名
#设置uwsgi包解析的内部缓存区大小。默认4k
buffer-size=32768
配置文件的执行方式,命令行输入指令:
或者不写配置文件(不建议这样做),直接命令行输入
uwsgi–socket127.0.0.1:5000–wsgi-filemanage.py–callableapp–process4–threads2
这里的callable=app这个app是manage.py程序文件内的一个变量,这个变量的类型是flask的application类
这里是因为博主已经配置好了项目自启动,已经有一个配置文件在运行了,大家按照正常流程配置就好。ctrl+c关闭程序,在实际项目中我们的服务器上可能会有多个项目在运行,我们需要应用随同服务器启动并作为后台服务运行才是实际项目需要,所以我们需要安装另一个工具来引导执行uwsgi
安装supervisor
supervisor可以同时启动多个应用,最重要的是当某个应用down掉的时候,他可以自动重启该应用,保证可用性。

打开该默认配置文件,最下面一行我们看到,该默认配置文件会从/etc/supervisord/目录下面加载所有的配置文件
我们不需要修改默认的配置文件,只需要在/etc/supervisord/目录下新建一个配置文件(命名为flask_supervisor.conf)
command=/usr/local/flasky/venv/bin/uwsgi/usr/local/flasky/config.ini
directory=/usr/local/flasky
stdout_logfile=/usr/local/flasky/logs/uwsgi_super.log
这里command这一行代码看起来很长,其实就是之前我们的“uwsgiconfig.ini”指令,这里使用的是绝对路径,保证命令和文件的准确性,大家也可以copy这一行代码出去执行,结果是ok的。autostart和autorestart参数保证了我们的应用可以一直保持启动的状态,即使是down掉了也能重启服务。
安装nginx
nginx是轻量级,性能强,占用资源少,能很好的处理高并发的反向代理软件。
正向代理和反向代理
正向代理,作为一个媒介将互联网上获取的资源返回给相关联的客户端。代理和客户端在一个局域网,对于服务是透明的。反向代理,根据客户端的请求,从后端的服务器上获取资源,然后再讲这些资源返回给客户端。代理和服务器再一个局域网,对客户端是透明的。nginx是反向代理的最佳选择。
反向代理的作用
提高动态语言的io处理能力加密和ssl加速安全。负载均衡缓存静态内容支持压缩。
nginx安装指令:
配置nginx
我们找到nginx的配置文件,不要修改默认的nginx.conf(路径/etc/nginx/nginx.conf)文件,只需要在同样的文件夹下面新建一个文件夹(conf.d)然后在conf.d下面新建配置文件(flask_ng.conf)即可,如下图
flask_ng.conf文件内容如下
server_namewww.cloud-test.com;#公网地址
uwsgi_pass127.0.0.1:5000;#指向uwsgi所应用的内部地址,所有请求将转发给uwsgi处理
uwsgi_paramuwsgi_pyhome/usr/local/flasky/venv;#指向虚拟环境目录
uwsgi_paramuwsgi_chdir/usr/local/flasky;#指向网站根目录
uwsgi_paramuwsgi_scriptmanage:app;#指定启动程序
}
小case,解决办法,直接修改本机hosts,绑定就好了,如下图所示
然后也可以找自己的同事一起访问,看看并发请求,网站的运行情况,想来能解决在开发环境使用了host0.0.0.0也只能处理一个用户的请求的问题
supervisorctl是supervisord的命令行客户端工具,使用的配置和supervisord一样,这里就不再说了。下面,主要介绍supervisorctl操作的常用命令:输入命令supervisorctl进入supervisorctl的shell交互界面(还是纯命令行),可以看到应用的运行情况就可以在下面输入命令了。:
help查看程序状态stopprogram_name启动指定的程序restartprogram_name查看该程序的日志update#重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)
也可以直接通过shell命令操作:
supervisorctlstatussupervisorctlupdate
以上就是centos怎么使用Nginx部署flask应用的详细内容,更多请关注主机测评网其它相关文章!
本文来源:国外服务器--centos怎么使用Nginx部署flask应用(nginx配置flask)
本文地址:https://www.idcbaba.com/guowai/3559.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



