【问题标题】:Automatically route each URL to a specific .py file with mod_wsgi使用 mod_wsgi 自动将每个 URL 路由到特定的 .py 文件
【发布时间】:2020-09-04 12:33:07
【问题描述】:

我知道使用mod_wsgi 的传统方式是在配置文件中声明一个或几个路由:

<VirtualHost *:80>
    ServerName example.com
    WSGIScriptAlias /   /path/to/test_wsgi/app.py       

然后直接从服务器 app.py 处理所有可能的 URL example.com/helloexample.com/fooexample.com/foo/bar(通常运行像 Bottle、Flask 等框架)。

但是有没有办法自动对应

无需.htaccess&lt;VirtualHost&gt; 中手动注册每个处理程序?

mod_wsgi 如何做到这一点?

我知道这不是传统用法,但我很好奇它是否可以做到。如果没有,我们可以用 CGI、FastCGI 来做到这一点吗?

【问题讨论】:

    标签: python apache cgi mod-wsgi wsgi


    【解决方案1】:

    文档涵盖了这个用例。见:

    示例使用:

    WSGIScriptAlias /wsgi/ /usr/local/wsgi/scripts/
    

    这并不是一个真正推荐的方法,因为每个脚本都使用自己的 Python 子解释器,所有这些都在一个进程中,因此它会占用大量内存。

    【讨论】:

    • 感谢您的回答!哦,我明白了……以下是否正确? 不带斜线:指的是实际文件(例如WSGIScriptAlias /myapp /usr/local/wsgi/scripts/myapp.wsgi)。 带有斜杠:(挂载点和目录路径都必须有斜杠。)这会将任何路由/wsgi/blah 映射到脚本/usr/local/wsgi/scripts/blah?如果是这样,我认为这个微小的差异应该在文档中更加强调,并提供一个具体的映射示例,以供将来参考!
    • target 是文件时可以使用斜杠,target 是目录时可以省略斜杠。您是否有尾部斜杠还有其他含义,尽管在路径是如何构建的以及在目标是目录的某些情况下是否由 Apache 执行重定向。对于目录,一般准则是 URL 和路径都带有斜杠,或者都没有。您使用哪个取决于您的用例。对于文件目标,通常不会在文件路径上使用斜杠。
    • 感谢您提供此信息。我认为在 mod_wsgi 文档中包含一些示例会很棒。例如:设置...example.com/path/to/hello.py 会调用脚本...example.com/path/anotherone/test.py 会调用脚本...,等等。
    • 您已经包含了第一种情况的示例@GrahamDumpleton:WSGIScriptAlias /wiki /usr/local/wsgi/scripts/mywiki.wsgiWSGIScriptAlias /blog /usr/local/wsgi/scripts/myblog.wsgi 等,这非常有帮助。最好在第二种情况下添加一些类似的示例,就在 使用 WSGIScriptAlias 指令的第二种方法是使用它映射到包含任何数字的目录... WSGIScriptAlias /wsgi/ /usr/local/wsgi/scripts/ .你怎么看?
    猜你喜欢
    • 2015-11-12
    • 1970-01-01
    • 2020-08-15
    • 2014-08-19
    • 2021-05-08
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2014-06-12
    相关资源
    最近更新 更多