使用 mod_wsgi 自动将每个 URL 路由到特定的 .py 文件
Automatically route each URL to a specific .py file with mod_wsgi
我知道使用mod_wsgi
的传统方法是在配置文件中声明一条或几条路由:
<VirtualHost *:80>
ServerName example.com
WSGIScriptAlias / /path/to/test_wsgi/app.py
然后直接从服务器 app.py
处理所有可能的 URL example.com/hello
、example.com/foo
、example.com/foo/bar
(通常是 运行 像 Bottle 这样的框架,烧瓶等)。
但是有没有办法自动对应
http://example.com/hello.py => 自动调用 ./hello.py
脚本
http://example.com/test/test.py => 自动调用 ./test/test.py
脚本
更普遍:http://example.com/path/to/script.py => 自动调用 ./path/to/script.py
脚本
无需在.htaccess
或<VirtualHost>
?
中手动注册每个处理程序
mod_wsgi
如何做到这一点?
我知道这不是传统用法,但我很好奇是否可以做到。如果没有,我们可以用CGI,FastCGI来做吗?
文档涵盖了这个用例。参见:
示例使用:
WSGIScriptAlias /wsgi/ /usr/local/wsgi/scripts/
这不是真正推荐的方法,因为每个脚本都使用自己的 Python 子解释器,所有这些都在一个进程中,因此它会占用大量内存。
我知道使用mod_wsgi
的传统方法是在配置文件中声明一条或几条路由:
<VirtualHost *:80>
ServerName example.com
WSGIScriptAlias / /path/to/test_wsgi/app.py
然后直接从服务器 app.py
处理所有可能的 URL example.com/hello
、example.com/foo
、example.com/foo/bar
(通常是 运行 像 Bottle 这样的框架,烧瓶等)。
但是有没有办法自动对应
http://example.com/hello.py => 自动调用
./hello.py
脚本http://example.com/test/test.py => 自动调用
./test/test.py
脚本更普遍:http://example.com/path/to/script.py => 自动调用
./path/to/script.py
脚本
无需在.htaccess
或<VirtualHost>
?
mod_wsgi
如何做到这一点?
我知道这不是传统用法,但我很好奇是否可以做到。如果没有,我们可以用CGI,FastCGI来做吗?
文档涵盖了这个用例。参见:
示例使用:
WSGIScriptAlias /wsgi/ /usr/local/wsgi/scripts/
这不是真正推荐的方法,因为每个脚本都使用自己的 Python 子解释器,所有这些都在一个进程中,因此它会占用大量内存。