在nginx中像PHP一样使用Python

1 投票
4 回答
3665 浏览
提问于 2025-04-17 06:35

我们现在使用nginx作为网页服务器,同时用PHP-FPM来处理PHP应用程序。我们有一个小应用需要开发,但必须使用Python3。请问有没有类似的选项可以用来支持Python呢?

4 个回答

0

这个框架 cherrypy 本身就是一个可以运行 Python3 代码的网络服务器。你可以很简单地配置 nginx,让它负责你网站的静态部分,同时把所有动态请求转发到 cherrypy 服务器上。

用这种方法,nginx 还可以很方便地提供由 Python 代码生成的 memcached 数据,这样可以让执行速度更快。

1

你可以试试uwscgi。这东西配置起来简单,而且性能很高。

2

Python 3 可能会是你遇到的一个限制因素。我对 WSGI 和 Python 3 的了解不是很全面,因为我主要使用的是 2.7 版本,不过我上次查的时候,Bottle 是为数不多支持 Python 3 的框架之一。

更新一下:我刚刚得知 CherryPy 现在也兼容 Python 3 了。

也就是说,一旦你找到了支持 WSGI 或 FastCGI 的框架,你只需要设置一个应用容器,比如 uWSGI 或 FastCGI,然后配置 nginx 让它通过指定的套接字与容器通信,同时提供静态内容。这和你现在使用 PHP-FPM 的方式可能非常相似。

uWSGI 和 nginx 的示例:

location = /testapp {rewrite ^ /testapp/; }
location /testapp { try_files $uri @testapp; }
location @testapp {
    include uwsgi_params;
    uwsgi_param SCRIPT_NAME /testapp;
    uwsgi_modifier1 30;
    uwsgi_pass unix:/tmp/uwsgi.sock;
}

撰写回答