I am new to Elastic Beanstalk, trying to serve a Node.js Express app and utilize serving our static files separately with Nginx. None of the tutorials I've come across are explicit in how to define the virtual path.
I'm attempting to do this through the AWS console in the browser. I am trying to add a virtual path/directory setup for the static files. In the console I'm atElastic Beanstalk > myapp > configuration > Static Files
But no matter what I add here I get this error message:
I've also tried adding the full directory path (/var/app/current/dist/public/images/
). Is there another .ebextensions/*.conf
file I need to add? I don't have a lot of experience with Nginx so if the fix is a .conf
file I wouldn't know what it is
This is a known bug, They only support python when it comes to the web console. if your application is in nodejs you would need to set these properties from the cli.
you can setup the values from cli this way
aws elasticbeanstalk update-environment --environment-id your_enviornment_id --option-settings 'Namespace=aws:elasticbeanstalk:container:nodejs:staticfiles,OptionName=/assets,Value=/static/assets'
or editing the config file from eb config
.
Kashif Zaidi's answer works well, but if you want to keep the setting consistent across multiple deployments, you can make a .ebextensions
directory at the project root with some file like 01_environment_settings.config
that specifies that setting like so:
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
"/assets": "/static/assets"
You can specify multiple static file settings, for example:
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
"/app/": "frontend_build/"
"/static/": "frontend_build/static/"
"/backend_static": "static/"
来源:https://stackoverflow.com/questions/47646783/elastic-beanstalk-nginx-serve-static-files