我正在运行一个带有uwsgi
和nginx
的Python web服务器,基映像为tiangolo/uwsgi-nginx-flask
。
我想传递我的客户端证书DN,如果一个存在。为此,我定义了以下nginx.conf
:
uwsgi_read_timeout 300;
ssl_certificate /app/cert.pem;
ssl_certificate_key /app/key.pem;
ssl_password_file /app/password.pass;
ssl_client_certificate /app/client-ca.crt;
ssl_verify_client optional;
ssl_verify_depth 2;
include uwsgi_params;
uwsgi_param HTTP_X_DN $ssl_client_s_dn;
我想让我的Flask代码接收http_x_dn
参数,但找不到如何接收。
环顾四周,我发现它应该驻留在flask
的request.environ
对象中,但是在打印环境内容时,我没有看到任何这样的键。
在通过邮递员发送请求时,request.environ.keys()
返回以下内容以供参考:
dict_keys.input“、”wsgi.file_wrapper“、”wsgi.version“、”wsgi.errors“、”wsgi.run_once“、”wsgi.multithread“、”wsgi.multiprocess“、”wsgi.url_scheme“、”uwsgi.version“、”uwsgi.node“、”wwkzeug.request“)
显然,这是由于docker映像暴露的配置限制造成的。
见https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/103
现在可以完全覆盖nginx.conf
,而以前我只覆盖app.conf
。
无论如何,这是一个最有效的小变通方法,在/app/prestart.sh
:
#!/usr/bin/env bash
ex -sc '%s/include uwsgi_params;/include uwsgi_params; uwsgi_param SSL_CLIENT_S_DN $ssl_client_s_dn;/g|x' /etc/nginx/conf.d/nginx.conf
Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) Discouraged tags python3.8-alpine (Dockerfile) To l
问题内容: 我看过类似的论坛,但无法获得任何有效的解决方案。我正在尝试将变量从Flask传递到我的JavaScript文件。这些值将用于我的JavaScript文件中的PubNub。 这是我的Python代码的一部分: 这是我的JavaScript代码(app.js)的一部分: 如果我在Settings.html文件中使用了此代码,而在app.js文件中却没有使用,则此代码有效。 问题答案: 该m
问题内容: 我知道如何使用jinja模板将数据从python传递到javascript,但是我想将javascript变量传递到python。我想这样做而无需重新加载页面。那可能吗? 问题答案: 是的,就像monkut所说的那样-我相信您想使用JSON和Javascript / jQuery。 这将允许从客户端到服务器的通讯,然后再返回。 我发现的最适用的示例是在Flask片段/模式中:http
问题内容: 我在烧瓶上创建了一个端点,该端点从数据库查询(远程数据库)生成电子表格,然后将其作为下载内容发送到浏览器中。Flask不会抛出任何错误。Uwsgi没有抱怨。 但是当我检查nginx的error.log时,我看到了很多 2014/12/10 05:06:24 [错误] 14084#0:* 239436上游过早关闭连接,同时从上游读取响应头,客户端:34.34.34.34,服务器:me.c
我试图设置NGINX,uWSGI和烧瓶。我目前正在得到, uWSGI错误 找不到Python应用程序 我得到了一些奇怪的错误在我的uwsgi错误文件,你可以在我的文章底部找到。 我会直截了当地说,这是在运行Ubuntu 13.04 64位的新VPS上,这些是我运行的命令。 sudo apt-get更新 sudo apt-get安装构建基本 sudo apt-get安装python-dev sudo