

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Elastic Beanstalk 上使用 Procfile 配置应用程序进程。
<a name="ruby-platform-procfile"></a>

要指定启动 Ruby 应用程序的命令，请在源代码包的根目录中包含一个名为 `Procfile` 的文件。

**注意**  
Elastic Beanstalk 在 Amazon Linux AMI Ruby 平台分支（在 Amazon Linux 2 之前）上不支持此功能。无论 Ruby 版本为何，名称包含 *with Puma* 或 *with Passenger* 的平台分支都早于 Amazon Linux 2，并且不支持 `Procfile` 属性。

有关编写和使用 `Procfile` 的详细信息，请参阅 [Buildfile 和 Procfile](platforms-linux-extend.build-proc.md)。

如果您未提供 `Procfile`，Elastic Beanstalk 会生成默认的 `Procfile`。如果 `Gemfile` 包含 Puma，Elastic Beanstalk 会假定您想使用您提供的 Puma 版本，并生成以下默认的 `Procfile`。

```
web: bundle exec puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb
```

如果 `Gemfile` 不包含 Puma，则 Elastic Beanstalk 会假定您使用的是预安装的 Puma 应用程序服务器并生成以下默认的 `Procfile`。在 Amazon Linux 2 Ruby 平台分支上，如果您未提供 `Procfile`，Elastic Beanstalk 会始终生成以下默认的 `Procfile`。

```
web: puma -C /opt/elasticbeanstalk/config/private/pumaconf.rb
```

**注意**  
[2024 年 10 月 10 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2024-10-10-al2-10-2024-retire.html)，最后一个 Ruby Amazon Linux 2 平台分支停用。目前[受支持的所有 Ruby 平台分支](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.ruby)均基于 Amazon Linux 2023。有关迁移的更多信息，请参阅[从 Amazon Linux 2 迁移到 Amazon Linux 2023](using-features.migration-al.generic.from-al2.md)。

如果要使用 Passenger 应用程序服务器，请使用以下示例文件配置 Ruby 环境，以安装和使用 Passenger。

1. 使用此示例文件安装 Passenger。  
**Example Gemfile**  

   ```
   source 'https://rubygems.org'
   gem 'passenger'
   ```

1. 使用此示例文件指示 Elastic Beanstalk 启动 Passenger。  
**Example Procfile**  

   ```
   web: bundle exec passenger start /var/app/current --socket /var/run/puma/my_app.sock
   ```

**注意**  
您无需在 nginx 代理服务器的配置中更改任何内容即可使用 Passenger。要使用其他应用程序服务器，您可能需要自定义 nginx 配置以将请求正确转发到您的应用程序。