

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リバースプロキシの設定
<a name="platforms-linux-extend.proxy"></a>

すべての Amazon Linux 2 および Amazon Linux 2023 プラットフォームのバージョンは、デフォルトのリバースプロキシサーバーとして nginx を使用します。Tomcat、Node.js、PHP、Python のプラットフォームも、代替として Apache HTTPD をサポートします。これらのプラットフォームで Apache を選択するには、`aws:elasticbeanstalk:environment:proxy` 名前空間の `ProxyServer` オプションを `apache` に設定します。このセクションの説明の通り、すべてのプラットフォームでプロキシサーバーの設定が一貫して有効にされています。

**注記**  
Amazon Linux AMI プラットフォームのバージョン (Amazon Linux 2 より前) では、異なるプロキシサーバー設定にすることが必要になる場合があります。これらのレガシーの詳細は、このガイドの[それぞれのプラットフォームのトピック](concepts-all-platforms.md)を参照してください。

Elastic Beanstalk は、環境のルート URL 上のメインウェブアプリケーションにウェブトラフィックを転送するように、環境のインスタンスでプロキシサーバーを設定します (例: `http://my-env.elasticbeanstalk.com`)。

デフォルトでは、Elastic Beanstalk はポート 80 に届くリクエストをポート 5000 のメインウェブアプリケーションに送信するようにプロキシを設定します。次の例に示すように、設定ファイルで [aws:elasticbeanstalk: application: environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) 名前空間を使用して `PORT` 環境プロパティを設定することによって、このポート番号を設定できます。

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  {{<main_port_number>}}
```

使用しているアプリケーションの環境変数の設定の詳細については、「[オプション設定](ebextensions-optionsettings.md)」を参照してください。

アプリケーションは、プロキシで設定されているポートをリッスンする必要があります。`PORT` 環境プロパティを使用してデフォルトポートを変更した場合、コードは `PORT` 環境変数の値を読み取ることによってポートにアクセスできます。たとえば、Go の `os.Getenv("PORT")` または Java の `System.getenv("PORT")` を呼び出します。複数のアプリケーションプロセスにトラフィックを送信するようにプロキシを設定する場合、複数の環境プロパティを設定し、それらの値をプロキシ設定とアプリケーションコードの両方で使用できます。もう 1 つのオプションは、`Procfile` でコマンド引数としてポート値をプロセスに渡すことです。詳細については、「[ビルドファイルと Procfile](platforms-linux-extend.build-proc.md)」を参照してください。

## nginx の設定
<a name="platforms-linux-extend.proxy.nginx"></a>

Elastic Beanstalk は、デフォルトのリバースプロキシとして nginx を使用し、アプリケーションを Elastic Load Balancing ロードバランサーにマッピングします。Elastic Beanstalk は、拡張または独自の設定で完全に上書きできるデフォルトの nginx 設定を提供します。

**注記**  
nginx `.conf` 設定ファイルを追加または編集するときは、必ず UTF-8 としてエンコードしてください。

Elastic Beanstalk のデフォルトの nginx 設定を拡張するには、アプリケーションソースバンドルの `.platform/nginx/conf.d/` というフォルダに `.conf` 設定ファイルを追加します。Elastic Beanstalk の nginx 設定では、このフォルダに `.conf` ファイルが自動的に含められます。

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- {{other source files}}
```

`.platform/nginx/conf.d/` 内の設定ファイルは、nginx 設定の `http` ブロックに含まれています。この場所を、グローバルに適用される設定用に使用します。

デフォルトの nginx `server` ブロック設定を拡張するには、アプリケーションソースバンドルの `.platform/nginx/conf.d/elasticbeanstalk/` というフォルダに `.conf` 設定ファイルを追加します。Elastic Beanstalk の nginx 設定では、`server` ブロック内のこのフォルダに `.conf` ファイルがに含められます。

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- elasticbeanstalk
|               `-- server.conf
`-- {{other source files}}
```

この場所を使用して、追加のロケーションブロック、カスタムエラーページ、サーバーレベルのディレクティブなど、サーバー固有の設定を追加します。次の例では、カスタムロケーションブロックを追加します。

**Example .platform/nginx/conf.d/elasticbeanstalk/server.conf**  

```
location /test {
    return 200 "Hello World!";
    add_header Content-Type text/plain;
}
```

Elastic Beanstalk のデフォルトの nginx 設定を完全に上書きするには、ソースバンドルの `.platform/nginx/nginx.conf` に設定を含めます。

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`-- {{other source files}}
```

Elastic Beanstalk の nginx 設定を上書きするには、`nginx.conf` に以下の行を追加することにより、[Elastic Beanstalk の拡張ヘルスレポートおよびモニタリング](health-enhanced.md)、自動アプリケーションマッピング、および静的ファイルに関して Elastic Beanstalk の設定を適用します。

```
 include conf.d/elasticbeanstalk/*.conf;
```

## Apache HTTPD の設定
<a name="platforms-linux-extend.proxy.httpd"></a>

Tomcat、Node.js、PHP、Python のプラットフォームでは、nginx の代わりに Apache HTTPD プロキシサーバーを選択できます。これはデフォルトではありません。次の例では、Apache HTTPD が使用されるように Elastic Beanstalk を設定しています。

**Example .ebextensions/httpd-proxy.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache
```
追加の設定ファイルを使用して、Elastic Beanstalk のデフォルト Apache 設定を拡張できます。または、Elastic Beanstalk のデフォルトの Apache 設定を完全に上書きすることもできます。  
Elastic Beanstalk のデフォルトの Apache 設定を拡張するには、アプリケーションソースバンドルの `.conf` というフォルダに `.platform/httpd/conf.d` 設定ファイルを追加します。Elastic Beanstalk の Apache 設定では、このフォルダに `.conf` ファイルが自動的に含められます。  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   -- httpd
|      -- conf.d
|         -- port5000.conf
|         -- ssl.conf
-- index.jsp
```
たとえば、次の Apache 2.4 設定では、ポート 5000 にリスナーを追加します。  

**Example .platform/httpd/conf.d/port5000.conf**  

```
listen 5000
<VirtualHost *:5000>
  <Proxy *>
    Require all granted
  </Proxy>
  ProxyPass / http://localhost:8080/ retry=0
  ProxyPassReverse / http://localhost:8080/
  ProxyPreserveHost on

  ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
```
Elastic Beanstalk のデフォルトの Apache 設定を完全に上書きするには、ソースバンドルの `.platform/httpd/conf/httpd.conf` に設定を含めます。  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   `-- httpd
|       `-- conf
|           `-- httpd.conf
`-- index.jsp
```
Elastic Beanstalk の Apache 設定を上書きするには、`httpd.conf` に以下の行を追加することにより、[Elastic Beanstalk の拡張ヘルスレポートおよびモニタリング](health-enhanced.md)、自動アプリケーションマッピング、および静的ファイルに関して Elastic Beanstalk の設定を適用します。  

```
IncludeOptional conf.d/elasticbeanstalk/*.conf
```