如何阻止IP地址访问我在Heroku上的Flask应用?
我有一个IP地址需要从我的网站上屏蔽掉。我在Heroku上运行一个Flask应用,现在我的服务器每秒收到50个请求,这绝对不正常。
我知道在Apache服务器上可以用htaccess来处理这个问题,那么在这里(Gunicorn服务器)有没有类似的办法呢?
2 个回答
2
试试使用 pre_request
这个服务器钩子,它来自 Gunicorn
:
def pre_request(worker, req):
if req.remote_addr != 'ip to be blocked':
pass
18
使用Flask中的before_request装饰器。这段代码会在每次请求之前被调用,这样你就可以检查一个被禁止的IP地址列表。如果请求的IP地址在这个禁止的列表中,就会返回403错误,表示禁止访问。
from flask import request, abort, current_app as app
ip_ban_list = ['127.0.0.1']
@app.before_request
def block_method()
ip = request.environ.get('REMOTE_ADDR')
if ip in ip_ban_list:
abort(403)