centos nginx flask?apache和nginx哪个好

大家好,今天来为大家解答centos nginx flask这个问题的一些问题点,包括apache和nginx哪个好也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

Python3+Gunicorn+Nginx 部署Flask项目

前言:之前在本地测试项目的过程中一直使用python app.py的方式来启动项目,这种方式在本地测试的话还可以,但是在生产环境的话就不能使用这种方式。

原因:

1.可能会出现无响应情况

2.无法支持高并发和多线程

3.无法合理利用服务器资源

生产环境: Centos7、Python3

需要模块: Gunicon、Nginx、Flask

一、安装Gunicorn

Gunicorn是一个高效的Web服务器,地位相当于Java中的Tomcat。简单来说gunicorn封装了HTTP的底层实现,我们通过gunicorn启动服务,用户请求与服务相应都经过gunicorn传输。

1.创建虚拟环境

项目上传到服务器指定目录下,然后创建python3的虚拟环境,激活并进去虚拟环境,在虚拟环境下可以看到命令前有虚拟环境的名称。(之前在使用Gunicorn模块的过程中,没有使用虚拟环境,导致我启动项目有一直提示没有找到gunicorn这个命令,可能是我在使用python全局环境的过程中,有某些模块影响到这个gunicorn模块,后面在使用虚拟环境就没有出现这个问题。)

2.安装项目所需的模块

3.安装gunicorn

二、项目配置启动

1.创建一个简易的web程序

2.启动服务

4--启动4个进程来分配服务

0.0.0.0--允许任意主机访问

5000--启动端口(与nginx转发的端口一致)

app:目标文件

app:指定模块

补充部分: gunicorn和nginx关系

gunicorn可以单独提供服务,但生产环境一般不这样做。首先静态资源(jscssimg)会占用不少的请求资源,而对于 gunicorn来讲它本身更应该关注实际业务的请求与处理而不应该把资源浪费在静态资源请求上;此外,单独运行 gunicorn是没有办法起多个进程多个端口来负载均衡的。

nginx的作用就是弥补以上问题,首先作为前端服务器它可以处理一切静态文件请求,此时 gunicorn作为后端服务器,nginx将会把动态请求转发给后端服务器,因此我们可以起多个 gunicorn进程,然后让 nginx作均衡负载转发请求给多个 gunicorn进程从而提升服务器处理效率与处理能力。最后,nginx还可以配置很多安全相关、认证相关等很多处理,可以让你的网站更专注业务的编写,把一些转发规则等其它业务无关的事情交给 nginx做。

参考链接:

flask+uwsgi+nginx简单配置指北

为了给公司展示策略指标,我在服务器上搭建了一套使用json传输数据的网页。这次搭建的目的是为了防止未来重新配置服务器时出现困扰,因此我详细记录了整个配置过程。下面我将分步介绍如何使用 Flask、UWSGI和 Nginx进行配置。

**Flask配置**

Flask配置相对简单。在 Centos服务器环境下,我使用的是虚拟环境,只需直接进入虚拟环境并使用 `pip3 install Flask`进行安装即可。不过要注意,在安装 Flask之前,如果与qt5-tool中的click版本有冲突,需要先查询并确保版本兼容性。

创建一个 Flask程序,并运行。对面可以通过 GET请求获取数据库数据。如果遇到端口被占用的问题,可以通过 `lsof-i:端口号`命令检查端口使用情况,然后使用 `kill-9 PID`杀掉占用端口的进程。若发现防火墙限制了端口访问,需关闭防火墙或使用 `iptables`命令开放端口。

**UWSGI配置**

退出虚拟环境后,使用 `pip3 install uwsgi`进行安装。确保在安装 uwsgi前已安装必要的库,如 gcc。创建初始化配置文件 `uwsgi.ini`并编辑,设置 Python的 home环境为程序运行目录。确保设置 buffer-size、harakiri和 socket-timeout为合适值,以避免在传输大文件时发生断链。配置 uwsgi为直接运行模式,并设置与 Flask应用相同的 host。启动 uwsgi服务。

在配置过程中,可能遇到 `bind(): No such file or directory`错误,解决方法是确保 uwsgi启动时的监听端口已开放,同时清理可能存在的 uwsgi相关文件夹。此外,使用 `strace-f uwsgi--ini uwsgi.ini`命令辅助调试。

**Nginx配置**

安装 epel并更新系统后,安装 Nginx。创建 Nginx配置文件,如 `sql_link.conf`,在配置文件中定义相关规则,确保 uwsgi能够通过 Nginx接收 HTTP请求。启动 Nginx和 uwsgi服务。

**使用 uwsgitop监控性能**

安装 uwsgitop并使用 `uwsgitop stats.socket`命令监控 uwsgi的性能。uwsgitop打开的文件为 `uwsgi.ini`中设置的 stats存储文件,显示 uwsgi的性能统计信息。

10RMB/月不到部署FLASK网站项目(flask+gunicorn+nginx)

部署FLASK网站项目,包含flask、gunicorn和nginx,成本低廉,每月不到10元人民币。以下为详细步骤:

一、本地部署小项目

创建项目结构如下:

My_website┣━ HelloWorld┃┣━ blueprints┃┃┗━ main.py┃┣━ static┃┃┗━ css┃┃┗━ style.css┃┣━ templates┃┃┗━ index.html┃┗━ __init__.py┣━ run.py┗━.flaskenv

编写代码,生成requirement.txt文件,确保项目依赖库的统一。

二、腾讯云租用服务器

选择腾讯云的校园优惠政策,每月费用约10元人民币,无需审核,快速认证。

购买服务器,选择合适的镜像,添加域名,并进行解析配置。

三、服务器搭建网站

通过Xsell7连接服务器,更新系统包列表,安装虚拟环境及所需第三方库。

设置防火墙(可选),使用Gunicorn运行程序,通过NGINX提供反向代理。

访问服务器IP地址的8000端口,解决style.css权限问题,使用supervisor实现后台自动运行。

至此,FLASK网站项目部署完成,成本低廉,操作简单,适用于个人或小型团队使用。

阅读剩余
THE END