问题
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.
回答1:
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
回答2:
Remove underscores from the header variables, example:-
header_var_val = "some value"
replace it with -- headervarval = "some value"
回答3:
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
来源:https://stackoverflow.com/questions/34969824/aws-elastic-beanstalk-http-header-not-appearing-in-flask-application