正如Kinto文档中所述,我可以specify a custom configuration这样:
docker run --env-file ./kinto.env -p 8888:8888 kinto/kinto-server
。
此外,我似乎可以suggest an http scheme使用http_scheme
属性。
现在,如果我:
KINTO_HTTP_SCHEME=https
放入kinto.env
文件; 我得到一个空白页。
如果我导航到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.
Kinto说:Fetch API cannot load http://example.com:8888/v1/. Failed to start.
Error: HTTP 0; TypeError: Failed to fetch(…)
答案 0 :(得分: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终止。
答案 1 :(得分:0)
从未使用过Kinto,但来自documentation:
环境变量与设置完全相同,但它们>是资本化的。被_。
取代例如,如果已定义,则从环境变量KINTO_STORAGE_BACKEND中读取kinto.storage_backend。
因此,您要在kinto.env
文件中设置的environment variable为KINTO_HTTP_SCHEME
,而不是HTTP_SCHEME
。