1

当 pserve 默认启动时,它会在http://0.0.0.0:6543中运行金字塔应用程序,但是如何将其更改为http://0.0.0.0:6543 /myapp

在设置中我可以更改端口,但我没有在其他地方找到更改根路径的位置

4

1 回答 1

1

在任何 WSGI 应用程序中,environ['SCRIPT_NAME']这里非常重要。它定义了应用程序中所有 url 的根路径。完整路径是environ['SCRIPT_NAME'] + environ['PATH_INFO']. 假设您已经在您的应用程序中正确地完成了一些事情(例如,request.route_url(..)将使用此信息生成 url),那么您可以通过指示它应该是其他东西来简单地将您的应用程序重新安装到其他地方(默认SCRIPT_NAME为)。''

根据您部署应用程序的方式,您可以做几件事(如果它在代理后面,那么事情会稍微复杂一些)。假设您只是在使用由女服务员托管的简单金字塔应用程序。您可以使用rutter[1] 包移动您的应用程序,该包将匹配路径并使用适当的( ) 和/myapp/*将所有请求发送到您的应用程序。SCRIPT_NAMEmyappPATH_INFO

声明式配置对于金字塔应用程序来说是最简单的。只需安装rutter然后更新您的 INI 文件以在/myapp前缀处挂载您的应用程序:

[app:foo]
use = egg:myapp#main

[composite:main]
use = egg:rutter#urlmap
/myapp = foo

请注意,我将其重命名为app:mainapp:foo因为您只能命名一个 wsgi 组件main,并且我们希望它是复合组件。

[1] http://rutter.readthedocs.io/en/latest/#declarative-configuration-using-paste-deploy-ini-files

于 2017-04-19T21:33:02.680 回答