一、Python WSGI HTTP服务器
Gunicorn是一个用Python编写的WSGI(Web服务器网关接口)HTTP服务器,专门用于运行Python web应用程序。它是一个轻量级、高效的服务器,旨在处理高并发请求,提供稳定可靠的服务12。
Gunicorn的基本概念和功能
Gunicorn通过实现WSGI规范,使得Python Web应用程序可以在生产环境中部署和运行。其主要功能和特点包括:
高性能:基于Pre-fork模型和多进程处理,充分利用多核处理器的优势,能够处理高并发请求12。
稳定可靠:通过预分配的工作进程处理请求,减少了服务器崩溃的可能性1。
负载均衡:内置负载均衡机制,将请求均匀分发给不同的工作进程,避免单个进程过载2。
多进程管理:启动多个工作进程处理并发请求,每个进程独立运行,提高整体性能和吞吐量2。
简单易用的命令行接口:提供一组简单易用的命令行接口,方便配置和管理服务器2。
Gunicorn的工作原理
Gunicorn的工作原理是通过使用预先分配数量的工作进程来处理传入的HTTP请求。它采用Pre-fork模型,充分利用多核处理器的优势,通过多个工作进程并行处理请求,从而实现高效、稳定和可靠的性能。此外,Gunicorn还支持在每个工作进程内创建多个线程,进一步提升并发处理能力12。
Gunicorn的应用场景和与其他工具的对比
Gunicorn通常部署在反向代理(如Nginx)和一个Web应用(如Django、Flask)之间,用于处理Web应用的后端请求。由于其高效、稳定的特点,Gunicorn成为许多Python开发者和企业的首选服务器。与其他服务器相比,Gunicorn在处理高并发请求方面表现出色,特别适合需要高性能和稳定性的生产环境13。
二、下面总结一下如何安装和使用的教程:
1、安装Gunicorn,前提是已经安装了python和pip的
sudo pip3 install gunicorn
2、先找出Gunicron的安装目录,在CentOS系统中,要查看Gunicorn的安装目录,你可以使用whereis或者which命令来找到Gunicorn的执行文件位置。以下是具体的命令:
which Gunicron
这个命令会输出Gunicorn的可执行文件的路径。如果Gunicorn是通过Python的虚拟环境安装的,你可能需要先激活该虚拟环境,然后再运行上述命令。
3、把路径加入环境变量里,不用每次开机去执行Gunicorn,将gunicorn所在的路径(/usr/local/python3/bin)添加到PATH环境变量里:
export PATH=$PATH:/usr/local/python3/bin
4、如何加入环境变量
用VIM命令打开.bash_profile:
vim .bash_profile
敲键盘“i”,代表insert文件状态
在文件末尾添加:export PATH=$PATH:/usr/local/python3/bin
按“ESC”键退出文本编辑状态,再输入:wq保存并关闭文件,然后执行以下命令使变量生效:
source .bash_profile
这样就算centos重启也不怕找到Gunicorn了
5、这时候如果同一个网站内还不能用IE打开的话,需要开通防火墙的端口,如下:
firewall-cmd --zone=public --add-port=5005/tcp --permanent
firewall-cmd --reload
6、在生产部署里,找到存放WEBAPI接口(自己用PYTHON写的)位置上运行终端:
gunicorn -w 4 -b 0.0.0.0:5000 --timeout 120 app:app
解释:
-w 4为启用4个工作进程
-b 为绑定到本机IP的5000端口上
–timeout为超时时间
第一个app为文件名称即实例模块
第二个app为py程序里的模块名称即应用模块
至此,互联互通的其它电脑就可以通过访问Web服务器了,所以Gunicorn主要用作应用服务器比较多,Web服务器还得看Nginx,下一编讲一下Nginx