Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算量大的站点的最佳服务器配置_Python_Nginx_Apache2_Server_Uwsgi - Fatal编程技术网

Python 计算量大的站点的最佳服务器配置

Python 计算量大的站点的最佳服务器配置,python,nginx,apache2,server,uwsgi,Python,Nginx,Apache2,Server,Uwsgi,我有一个网站,它使用符号数学库执行一些繁重的计算 目前平均计算时间为5秒 我知道,这问了一个太宽泛的问题,但无论如何,这类网站的优化配置是什么?哪个服务器最适合这个 目前,我正在使用带有mod_wsgi的Apache,但我不知道如何正确配置它 网站平均每秒接收40个请求 我应该设置多少进程、线程、MaxClient等 也许,使用nginx/uwsgi/gunicorn(我使用python作为编程语言)更好 无论如何,非常感谢您提供任何信息。Andrew 我相信您可以移动部署拓扑的某些部分 我的建

我有一个网站,它使用符号数学库执行一些繁重的计算

目前平均计算时间为5秒

我知道,这问了一个太宽泛的问题,但无论如何,这类网站的优化配置是什么?哪个服务器最适合这个

目前,我正在使用带有mod_wsgi的Apache,但我不知道如何正确配置它

网站平均每秒接收40个请求

我应该设置多少进程、线程、MaxClient等

也许,使用nginx/uwsgi/gunicorn(我使用python作为编程语言)更好

无论如何,非常感谢您提供任何信息。

Andrew

我相信您可以移动部署拓扑的某些部分

我的建议是使用nginx来交付HTTP内容,并使用一些web框架公开您的应用程序,例如tornadweb(我的偏好是,考虑到异步核心,与twisted相比,最好记录在案,甚至twisted是一个非常好的框架)

您可以通过代理在nginx和tornado之间进行通信。配置起来很简单

您可以复制服务实例,将计算应用程序分发到同一台计算机和其他主机中。nginx upstreams可以轻松配置它

如果您需要更高的性能,可以将应用程序拆分为小模块,并使用异步消息传递将其集成。在其他解决方案中,您可以选择使用zeromq或rabbitmq

然后,您可以拥有不同的拓扑,在应用程序的发展过程中逐渐应用

第1拓扑: nginx->web

第2拓扑: 带有loadbalance(上游)的nginx->TornadWeb在[1..n]个实例上复制

第三拓扑:

[2nd topology]->通过消息传递集成您的应用程序(zeromq、amqp(rabbitmq),…)

我最喜欢的是第三个,作为开始。但是,你现在应该在1号和2号开始


有很多选择。但是,对于应用程序的简单组织来说,这些可能就足够了。

迁移到编译语言(C variant/Go/Java/Scala)将有利于繁重的计算。出于部署目的,我建议将其并发性和编译功能扩展到单个二进制文件。