小编rog*_*wan的帖子

如何从nginx + Gunicorn后面的X-Forwarded-For获取第一个客户端ip?

用nginx+Gunicorn部署一个flask应用,我需要从访问者那里得到真实的ip。(对于 Gunicorn 在 nginx 之后无法获得 REMOTE-ADDR)我尝试通过以下方式从 X-Forwarede-for 获取客户端 IP:

client_ip = request.headers.getlist("X-Forwarded-For")[0]

有时我会像这样正确获取 client_ip:

x 转发:62.211.19.218

但有时我会得到这样的 client_ip 错误 - 结合代理 ip 地址(从一些不同的浏览器访问):

x 转发:62.211.19.218、177.168.159.85

nginx向App转发两个ip地址时,如何只获取第一个客户端ip(没有代理地址177.168.159.85)?

python http nginx flask gunicorn

4
推荐指数
1
解决办法
9318
查看次数

Pillow如何直接从StringIO打开上传的图像文件?

用户通过表单上传图像文件,我不想将原始上传的图像文件保存到磁盘,并通过Pillow从磁盘打开图像来调整图像大小.

我想首先在内存中调整此映像文件的大小,然后将调整大小的映像文件保存到磁盘.所以我导入StringIO作为缓冲区,但它不适用于Pillow.

这是代码:

Python3.4,Flask == 0.10.1,Pillow == 3.4.2

forms.py

class Form():
    img = FileField()
    submit = SubmitField()
Run Code Online (Sandbox Code Playgroud)

views.py

from io import StringIO
from PIL import Image
from .forms import Form

@app.route('/upload_img', methods=['GET', 'POST'])
def upload_img():
    form = Form()
    im = Image.open(StringIO(form.img.data.read())

    pass
Run Code Online (Sandbox Code Playgroud)

TypeError:initial_value必须是str或None,而不是字节

python stringio flask pillow

1
推荐指数
1
解决办法
3360
查看次数

标签 统计

flask ×2

python ×2

gunicorn ×1

http ×1

nginx ×1

pillow ×1

stringio ×1