首页 文章

Elastic Beanstalk Nginx服务静态文件

提问于
浏览
5

我是Elastic Beanstalk的新手,尝试提供Node.js Express应用程序,并利用Nginx单独提供静态文件 . 我遇到的所有教程都没有明确说明如何定义虚拟路径 .

我'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'在
Elastic Beanstalk > myapp > configuration > Static Files

Elastic Beanstalk console

但无论我在这里添加什么,我收到此错误消息:
enter image description here

我也尝试添加完整的目录路径( /var/app/current/dist/public/images/ ) . 我需要添加另一个 .ebextensions/*.conf 文件吗?我没有很多Nginx的经验,所以如果修复是 .conf 文件,我不知道它是什么

2 回答

  • 0

    这是一个已知的错误,它们只在Web控制台上支持python . 如果您的应用程序在nodejs中,则需要从cli设置这些属性 .

    你可以用这种方式设置cli的值

    aws elasticbeanstalk update-environment --environment-id your_enviornment_id --option-settings 'Namespace=aws:elasticbeanstalk:container:nodejs:staticfiles,OptionName=/assets,Value=/static/assets'

    或者从 eb config 编辑配置文件 .

  • 10

    Kashif Zaidi的答案很有效,但是如果你想在多个部署中保持设置一致,你可以在项目根目录下创建 .ebextensions 目录,并使用像 01_environment_settings.config 这样的文件来指定设置:

    option_settings:
      aws:elasticbeanstalk:container:nodejs:staticfiles:
        "/assets": "/static/assets"
    

    您可以指定多个静态文件设置,例如:

    option_settings:
      aws:elasticbeanstalk:container:nodejs:staticfiles:
        "/app/": "frontend_build/"
        "/static/": "frontend_build/static/"
        "/backend_static": "static/"
    

相关问题