前言: 之前在本地测试项目的过程中一直使用python apppy的方式来启动项目,这种方式在本地测试的话还可以,但是在生产环境的话就不能使用这种方式。
原因:
1可能会出现无响应情况
2无法支持高并发和多线程
3无法合理利用服务器资源
生产环境: Centos7、Python3
需要模块: Gunicon、Nginx、Flask
一、安装Gunicorn
Gunicorn是一个高效的Web服务器,地位相当于Java中的Tomcat。简单来说gunicorn封装了>当你在Ubuntu下使用nginx和uwsgi部署flask时,uwsgi服务器的默认配置可能会导致问题。uwsgi默认会创建一个主进程和一个或多个工作进程,而当nginx代理请求时,它可能会将请求发送到已经关闭的工作进程,导致超时错误。使用killall -s INT uwsgi命令杀掉uwsgi进程可以解决这个问题,因为这个命令会向uwsgi主进程发送SIGINT信号,通知它关闭所有工作进程。然后,当你再次启动uwsgi时,它会重新创建一组新的工作进程,这些工作进程应该都能够正常工作。
为了避免这种情况,你可以修改uwsgi的配置,使它只创建一个工作进程。这样,当nginx代理请求时,它就只会将请求发送到一个工作进程,而不会出现超时错误。你可以在uwsgi配置文件中添加processes = 1来实现这一目的。例如:
==============
[uwsgi]
socket = /tmp/uwsgisock
chdir = /path/to/your/app
wsgi-file = apppy
callable = app
processes = 1
==============
希望这些信息能够帮助你解决问题。
首先纠正几个名词问题
服务器是指的硬件,PYthon作为一个编程语言是无法制作硬件的
网址更确切的说应该是域名服务,网址是一个指向地址,指向的是服务器的IP地址
python只能制作网站后台程序,目前已经有现成的py库可以快速搭建网站服务如:Django,Flask,Bottle 等框架都可以实现
通过网址访问,则需要域名服务,需要从域名服务商购买域名,并将域名解析到,网站服务器上,通过80端口访问通过网站程序搭建的网站
网址从服务商处注册,是需要一定费用的,可以根据自己的需要在服务商处选择
域名是可以自己自定义选择的,不过一定得是别人没有注册过的才行
服务器也是需要付费的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)