Amazon Elastic beanstalk:使用 nginx/apache 将子域转发到子文件夹

Posted

技术标签:

【中文标题】Amazon Elastic beanstalk:使用 nginx/apache 将子域转发到子文件夹【英文标题】:Amazon Elastic beanstalk : Use nginx/apache to forward subdomains to subfolders 【发布时间】:2013-08-21 16:14:16 【问题描述】:

我在 ebs 上创建了我的 node.js 应用,其中包含两个子路由器“foo”和“bar”,目前可通过“example.com/foo”和“example.com/bar”访问。

我希望 ebs 的反向代理将子域“foo.example.com”和“bar.example.com”转发到这些子文件夹...

即“foo.example.com/xxx” 到 “example.com/foo/xxx” “bar.example.com/yyy”到“example.com/bar/yyy”等

我知道如何配置 nginx 来执行此操作,但我不知道如何访问 EBS 上的 nginx 配置文件...

有人确切地问了the same thing over a year ago,但似乎 EBS 已经发展了很多,因为......只是想知道这种事情现在是否可行。

【问题讨论】:

【参考方案1】:

您可以使用配置文件来自定义您的 nginx 配置。

    在源包的顶层创建一个.ebextensions 目录。 创建配置文件/your_app/.ebextensions/custom.config。在配置文件中键入以下内容以配置转发设置。 (我创建了一个gist)
files:
  "/etc/nginx/conf.d/custom.conf" :
    content: |
      server 
        listen 8080;
        server_name foo.chief-motp.com;
        location / 
          proxy_pass  http://nodejs/foo/;
          proxy_set_header   Connection "";
          proxy_http_version 1.1;
          proxy_set_header        Host            $host;
          proxy_set_header        X-Real-IP       $remote_addr;
          proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         
         location /public 
           alias /var/app/current/public;
         
      
      server 
        listen 8080;
        server_name bar.chief-motp.com;
        location / 
          proxy_pass  http://nodejs/bar/;
          proxy_set_header   Connection "";
          proxy_http_version 1.1;
          proxy_set_header        Host            $host;
          proxy_set_header        X-Real-IP       $remote_addr;
          proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        
        location /public 
          alias /var/app/current/public;
        
      

自定义 Elastic Beanstalk EC2 实例的另一种方法是使用自定义 AMI。更多信息可以参考my post。

【讨论】:

以上是关于Amazon Elastic beanstalk:使用 nginx/apache 将子域转发到子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon Elastic Beanstalk 上安装 Anaconda

Amazon Elastic Beanstalk 腻子

Amazon Elastic Beanstalk 如何采用自定义 python 命令?

如何卸载 Amazon Elastic Beanstalk 命令行界面?

Elastic Beanstalk 是不是支持 Amazon 的 Aurora DB?

使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的芹菜超时异常