9

我试过python金字塔框架的教程,但是,https连接,不管服务员如何。 http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/installation.html

如果您查看女服务员的文档,有一个名为“url_scheme”的项目,采用 pasteDeploy 格式。我尝试将以下内容添加到 development.ini:

# # #
# Wsgi server configuration
# # #

[server: main]
use = egg:waitress#main
host = 0.0.0.0
port = 6543
url_scheme = https

但是,它似乎正在侦听 http 连接,执行 pserve 命令。

$ serve development.ini - reload
Starting subprocess with file monitor
Starting server in PID 2757.
serving on http://0.0.0.0:6543

此状态下浏览器访问无响应。我正在尝试创建的应用程序需要 https 访问权限,但您认为是否需要其他包。还是我在某个地方根本就错了?我会感谢专家的建议。

fedora19 中的环境,python 3.3.2。virtualenv 中包含的以下软件包:

Chameleon == 2.12
Mako == 0.9.0
MarkupSafe == 0.18
PasteDeploy == 1.5.0
Pygments == 1.6
SQLAlchemy == 0.8.2
WebOb == 1.2.3
coverage == 3.7
nose == 1.3.0
pyramid == 1.4.5
pyramid-debugtoolbar == 1.0.8
pyramid-mako == 0.2
pyramid-tm == 0.7
repoze.lru == 0.6
transaction == 1.4.1
translationstring == 1.1
tutorial == 0.0
venusian == 1.0a8
waitress == 0.8.7
zope.deprecation == 4.0.2
zope.interface == 4.0.5
zope.sqlalchemy == 0.7.3

请告诉我们文件的位置会对我有什么帮助。非常感谢!

4

1 回答 1

9

Waitress 实际上并不支持解码 https 请求。支持 https 的唯一方法是将服务员放在反向代理(如 nginx)后面。然后,您允许 nginx 解密请求并将其传递给女服务员。这里的问题是女服务员现在认为它正在服务一个 http 请求,因为这就是它从 nginx 看到的。该url_scheme设置用于告诉女服务员所有进入女服务员的请求实际上都是 https,然后它可以将其转发到应用程序,应用程序使用该事实来帮助您的应用程序使用 https 方案而不是 http 生成 url。

希望这是有道理的,但无论哪种方式,您都应该清楚,当您的粘贴中没有您实际创建证书或私钥的位置时,您的 https 设置将无法正常工作。

于 2013-10-20T18:58:36.660 回答