1

正如 Kinto 文档中所写,我可以通过这种方式指定自定义配置

docker run --env-file ./kinto.env -p 8888:8888 kinto/kinto-server.

此外,我似乎可以建议使用该属性的 http 方案。http_scheme

现在,如果我:

  1. 放入文件KINTO_HTTP_SCHEME=httpskinto.env
  2. 通过上面的命令运行 Kinto,并且;
  3. 转到https://example.com:8888/v1/

我得到一个空白页。

附加信息

如果我改为导航到http://example.com:8888/v1/,我会在页面上获得通常的 JSON 配置。此 JSON 还包含一个url 属性,即https://example.com:8888/v1/(而不是http://example.com:8888/v1/),所以似乎正在发生一些事情:.env文件已被读取。该链接是可点击的,但如果我点击它,我仍然会得到一个空白页面。

这是一个错误吗?我该如何解决?


笔记

这很重要,因为如果页面是通过 https 提供的,Chrome 将不允许我提供 http 内容。它完全阻止了请求,在控制台中显示了适当的错误:d Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure resource 'http://example.com:8888/v1/'. This request has been blocked; the content must be served over HTTPS.

金托 说:Fetch API cannot load http://example.com:8888/v1/. Failed to start. Error: HTTP 0; TypeError: Failed to fetch(…)

4

2 回答 2

2

这取决于您如何运行 Kinto。pserve默认情况下使用女服务员服务器,它没有任何 HTTPS 支持。

通过在 .ini 文件中指定替代服务器,可以使用替代服务器(例如 gunicorn 或 uwsgi)来替代 pserve。

以下是指向正确文档的指针:

例如,对于独角兽,它看起来像这样:

[server:main]
use = egg:gunicorn
host = 0.0.0.0
port = 5900
workers = 1
worker_class = gevent

然后配置 gevent 来做 SSL:

certfile=~/ssl/server.crt
keyfile=~/ssl/server.key
ssl_version=3

对于 uwsgi,你在文档中有默认配置,见 http://kinto.readthedocs.org/en/latest/configuration/production.html?highlight=uwsgi#running-with-uwsgi

希望有帮助。

或者,您可以使用 NGINX 或 haproxy 为您完成 SSL 终止。

于 2016-04-01T19:32:05.153 回答
0

从未使用过 Kinto,但来自文档

环境变量与设置完全相同,但它们 > 大写和 . 替换为_。

例如,如果定义了 kinto.storage_backend,则从环境变量 KINTO_STORAGE_BACKEND 中读取。

因此,您要在文件中设置的环境变量是,而不是.kinto.envKINTO_HTTP_SCHEMEHTTP_SCHEME

于 2016-03-31T13:02:03.747 回答