当前位置: 首页 > 知识库问答 >
问题:

将对称丰应用部署到弹性豆茎

娄学文
2023-03-14

我正在尝试将Symfony应用程序部署到Elastic Beanstek,但看起来URL重写不起作用。

使用在64位Amazon Linux 2上运行的平台PHP 7.4,文档根目录是/public。

.platform/nginx/conf.d/nginx.conf.conf

server {
  listen        80;
  root /var/app/current/public;
  index index.php;
  location / {
      # try to serve file directly, fallback to index.php
      try_files $uri /index.php$is_args$args;
  }
   location ~ ^/index\.php(/|$) {
    #fastcgi_pass unix:/var/run/php-fpm.sock;
          fastcgi_pass  php-fpm;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
        #include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
          fastcgi_param DOCUMENT_ROOT $realpath_root;
   }
  access_log    /var/log/nginx/access.log main;
  client_header_timeout 60;
  client_body_timeout   60;
  keepalive_timeout     60;
  gzip                  off;
  gzip_comp_level       4;
  # Include the Elastic Beanstalk generated locations
  #include conf.d/elasticbeanstalk/*.conf;
}

但是服务器找不到domain.com/auth/login的路径(但适用于domain.com/index.php/auth/login

----------------------------------------
/var/log/nginx/error.log
----------------------------------------
2020/05/16 17:32:48 [warn] 3709#0: conflicting server name "" on 0.0.0.0:80, ignored
2020/05/16 17:32:48 [warn] 3736#0: conflicting server name "" on 0.0.0.0:80, ignored
2020/05/16 17:32:48 [warn] 3740#0: conflicting server name "" on 0.0.0.0:80, ignored
2020/05/16 17:33:29 [error] 3744#0: *2 open() "/var/www/html/public/auth/login" failed (2: No such file or directory), client: 172.31.42.4, server: , request: "GET /auth/login HTTP/1.1", host: "..."

如果我删除fastcgi_params的注释标记(#),则无法找到它。

我在< code >/var/log/e b-engine . log 中发现了一个有趣的“错误”:

2020/05/16 18:21:37.054548 [INFO] Running command /bin/sh -c /usr/sbin/nginx -t -c /var/proxy/staging/nginx/nginx.conf
2020/05/16 18:21:37.064522 [ERROR] nginx: the configuration file /var/proxy/staging/nginx/nginx.conf syntax is ok
nginx: configuration file /var/proxy/staging/nginx/nginx.conf test is successful

共有2个答案

尉迟韬
2023-03-14

由于@Sylchauf的答案帮助很大,所以我想在这里扩展一些额外的细节,以帮助将来向其他人解释它,因为AWS在开始时很难导航。

以下是 AWS 文档的报价:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html

配置nginx弹性Beanstalk使用nginx作为默认反向代理,将应用程序映射到弹性负载平衡负载平衡器。Elastic Beanstalk提供了一个默认的nginx配置,您可以使用自己的配置完全扩展或覆盖它。

注意当您添加或编辑nginx. conf配置文件时,请务必将其编码为UTF-8。

要扩展Elastic Beansta k默认nginx配置,请将. conf配置文件添加到应用程序源包中名为. Platform/nginx/conf. d/的文件夹中。Elastic Beanstek nginx配置会自动在此文件夹中包含. conf文件。

~/workspace/my-app/|--.platform|-nginx|-conf.d|-myconf。conf--其他源文件

仅在此处添加位置参数即可使其正常工作,而从 Symfony 文档添加整个推荐配置在 elasticbeanstock 文件夹中不起作用。

当这个文件上传后,您可以使用eb ssh找到它:

eb ssh
cd /etc/nginx/conf.d
段干弘扬
2023-03-14

要在 AWS Linux 2 上启用 URL 重写,您必须添加以下文件(从根目录)。你不需要修改恩金克斯

创建文件:

.platform/nginx/conf.d/elasticbeanstalk/01-rewrite.conf

location / {
  try_files $uri /index.php$is_args$args;
}

然后,重新部署您的env

 类似资料:
  • 我是AWS的新手。试图将一个简单的flask应用程序部署到AWS。我没有问题,直到我包括熊猫套餐。 如果有人成功地部署了使用pandas到AWS的flask应用程序,请给出最好的方法。谢谢你。

  • 我尝试创建新的环境,然后给出应用程序版本的s3桶路径,但它不起作用。(给出了一些错误,说“这只能在VPC中完成”)。

  • 我正在严格遵循弹性豆茎文档(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html),但我无法使用git部署节点.js或PHP应用程序。 如果我试图从git推动,也会发生同样的事情 当您调用eb init时,AWS工具会设置一些git快捷方式。失败的呼叫是。。。 该python模

  • 假设我在Wordpress中创建了一个站点,它运行在Elastic Beanstalk上。现在,在运行的应用程序上,我将创建帖子/页面,上传图像等。也就是说,数据库中的一些数据、视频、文件和记录将被添加到运行的应用程序中。 从我在AWS控制台中看到的情况来看,我可以部署一个应用程序的不同版本--但是根据上面的场景,如果我部署了一个新版本,我会不会丢失直接上传到正在运行的应用程序中的所有文件(即文件

  • 我对Amazazon Web服务提供的弹性IP服务的使用有点困惑。我想主要的想法是,按照以下简单的过程,我可以切换到web应用程序的新版本,而不会停机: null 抱歉,如果有些问题听起来很愚蠢,但我只是一个程序员,这是我第一次建立云系统。 谢谢!

  • 我有一个用Python 2.7/Tornado编写的服务器,我正在尝试将其部署到AWS上。我遇到了AWS弹性豆茎,它看起来是一种非常方便的方法来部署我的代码。 txt文件中有一个tornado==4.4.2的条目。 我尝试添加一些日志语句来写入外部文件,但该文件没有被创建,这可能意味着应用程序甚至没有启动。 如果有人能提供一些在AWS-EB上部署龙卷风应用程序的步骤,或者我应该如何开始解决这个问题