AWS Elastic Beanstalk: HTTP Header not appearing i

2020-07-11 07:09发布

I have a small Flask application that I want to run on AWS Elastic Beanstalk.

The application deploys and runs fine but I've noticed that a custom HTTP Header (HTTP_CUSTOM_TOKEN) is not present in request.headers.

I'm assuming I'm missing something from the Apache configuration but am not very familiar with that environment.

3条回答
一纸荒年 Trace。
2楼-- · 2020-07-11 07:42

You need to enable the WSGIPassAuthorization. If you do not specifically enable auth forwarding, apache will consume the required headers and your app won't receive it.

Add this to your *.config file in .ebextensions folder.

commands: WSGIPassAuthorization: command: sed -i.bak '/WSGIScriptAlias/ a WSGIPassAuthorization On' config.py cwd: /opt/elasticbeanstalk/hooks

查看更多
疯言疯语
3楼-- · 2020-07-11 07:52

Remove underscores from the header variables, example:-

header_var_val = "some value"
replace it with -- headervarval = "some value"

查看更多
Bombasti
4楼-- · 2020-07-11 07:56

What you need is something similar to what @Fartash suggested, just slightly different.

Add .ebextensions/python.config :

container_commands:
  03wsgipass:
    command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'

as explained at Using the AWS Elastic Beanstalk Python Platform

查看更多
登录 后发表回答