centos flask 安装?centos7下载地址
大家好,centos flask 安装相信很多的网友都不是很明白,包括centos7下载地址也是一样,不过没有关系,接下来就来为大家分享关于centos flask 安装和centos7下载地址的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
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做。
参考链接:
Docker命令全集
一:首先来理解三个名词解释:
1、镜像(image)
Docker镜像(Image)就是一个只读的模板。
例如:一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache或用户需要的其它应用程序。镜像可以用来创建 Docker容器,一个镜像可以创建很多容器。
2、仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。
3、容器(container)
Docker利用容器(Container)来运行应用。容器是从镜像(Image)创建的运行实例。
二:常用的命令集合如下:
容器生命周期管理— docker
[run|start|stop|restart|kill|rm|pause|unpause|create]
容器操作运维— docker
[ps|exec|inspect|top|attach|events|logs|wait|export|import|port]
容器rootfs命令— docker
[commit|cp|diff]
本地镜像管理— docker
[images|rmi|tag|build|history|save]
镜像仓库— docker
[login|pull|push|search]
其他命令— docker
[info|version]
详细命令说明如下:
docker run-d--name alias-Name imageName//在后台启动一个容器
docker start Name/ID//启动容器
docker stop Name/ID//停止容器
docker restart Name/ID//重启容器
docker kill-s KILL Name/ID//杀死一个运行的容器
docker rm/rm-f Name/ID//删除容器
docker pause Name/ID//停止容器
docker unpause Name/ID//恢复容器
docker create--name CONTAINER_Name imageName//只创建容器但不启动
docker ps/ docker ps-a//查看运行的容器
docker exec-it CONTAINER_ID/bin/bash//进行一个运行中的容器,开启一个新的终端
docker attach CONTAINER_ID//进行一个运行中的容器,不开启一个新的终端
docker inspect CONTAINER_Name//查看容器的相关信息
docker top CONTAINER_Name//查看容器里面的进程
docker events-f"image"="imageName"--since="1467302400"//时间戳=2016年7月1日后的相关事件
docker logs CONTAINER_Name//查看容器的日志输出
docker wait CONTAINER_Name//阻塞运行直到容器停止,然后打印出它的退出代码
docker export-o test.tar CONTAINER_ID//将容器进行打包保存到本地,文件类型为tar
cat test.tar|docker import- image_name:tag//将上面保存的文件导入到镜像库中
docker port CONTAINER_ID//查看容器的端口映射情况
commit从容器中创建一个新的镜像
docker commit-a"tony test"-m"my mysql" CONTAINER_ID mymysql:v1
docker images mymysql:v1
cp在使用的过程中会进行多个主机与容器之间的数据交换
docker cp/ruiqi/content CONTAINER_ID:/ruiqi/
diff用来检查容器里面文件结构的更改
docker diff CONTAINER_ID
docker images/docker images-a//查看本地的镜像,-a表示是所有的镜像
docker rmi-f image_name//删除镜像
docker tag mysql:v5.6 mysql:v5.7//给镜像做一个有别名的复本
docker build-t runoob/ubuntu:v1.//构建一个镜像
docker history image_name//查看当前这个镜像的历史信息
docker save-o TestFlask.tar TestFlask:v3//将当前的镜像保存到本地的一个tar类型的文件
docker login//登录镜像仓库
docker pull//从镜像仓库中拉镜像
docker push//向镜像仓库推本地的镜像文件
docker search//检索镜像内容
三:利用dockerfile制作一个tomcat运行image:
[root@localhost common]# more Dockerfile.tomcat
FROM daocloud.io/centos:7
COPY jdk-8u144-linux-x64.rpm/opt/jdk-8u144-linux-x64.rpm
RUN ["rpm","-ivh","/opt/jdk-8u144-linux-x64.rpm"]
COPY security/usr/java/jdk1.8.0_144/jre/security
COPY certs/etc/pki/tls/certs
COPY tomcat/opt/tomcat
RUN ["ln","-s","/opt/tomcat","/usr/local/tomcat"]
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的性能统计信息。