【问题标题】:Static files not served on Beanstalk未在 Beanstalk 上提供静态文件
【发布时间】:2021-09-24 18:56:39
【问题描述】:

我为我的网站配置了一个应用程序负载均衡器,然后我制定了 3 条路径规则,这些规则使用 php+linux2+nginx(目标组)指向 3 个不同的 beanstalks:

Application Load Balancer
/blog/* > wordpress-beanstalk
/app/* > app-beanstalk
others > main-beanstalk

到目前为止,每条路由都运行良好,指向各自的 beanstalk 应用程序,主 php 代码正常工作。但是,除了“main-beanstalk”之外,其他应用程序的所有静态文件(css、js等)都没有被提供,返回403、502代码。

我怀疑,例如,当我从“wordpress-beanstalk”访问页面时,css 文件 (mywebsite.com/blog/css/main.css) 是从“main-beanstalk”而不是“wordpress”提供的-beanstalk”,这就是返回错误的原因。因为在这种情况下我也不能使用相对路径。

我还为这些文件夹应用了 chmod -R 664,基本结构如下:

.platform
.exextensions
www
css
js
images
index.php

有了这个假设,我尝试为其他具有变化的应用程序配置静态文件配置(删除斜线等),但仍然不起作用:

option_settings:
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    "/images/": "/images/"
    "/css/": "/css/"
    "/js/": "/js/"
    "/lib/": "/lib/"

另外,这是我的 location.conf 文件:

location / {
  index index.php index.html index.htm;
  try_files $uri $uri/ /index.php?$args;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
  expires max;
  log_not_found off;
}

谁有任何可能的解决方案?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


    【解决方案1】:

    您的所有目录都以slash 开头。 AWS docs 明确写不要这样做:

    在应用程序源代码的根目录中指定一个目录名称; 不要以斜线开头

    【讨论】:

    • 也尝试了与示例完全相同的模式,但仍然无法正常工作,仍然从文件中收到 403,404、502 错误
    猜你喜欢
    • 2018-05-18
    • 2018-08-09
    • 2012-12-12
    • 2015-10-30
    • 2020-11-21
    • 2021-05-03
    • 1970-01-01
    • 2013-01-13
    • 2021-10-31
    相关资源
    最近更新 更多