

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasi proksi terbalik
<a name="platforms-linux-extend.proxy"></a>

Semua versi platform Amazon Linux 2 dan Amazon Linux 2023 menggunakan nginx sebagai server proxy terbalik default mereka. Platform Tomcat, Node.js, PHP, dan Python juga mendukung Apache HTTPD sebagai alternatif. Untuk memilih Apache pada platform ini, mengatur pilihan `ProxyServer` di namespace `aws:elasticbeanstalk:environment:proxy` ke `apache`. Semua platform mengaktifkan konfigurasi server proksi dengan cara yang seragam, seperti yang dijelaskan di bagian ini.

**catatan**  
Pada Amazon Linux AMI versi platform (sebelumnya Amazon Linux 2) Anda mungkin harus mengonfigurasi server proksi secara berbeda. Anda dapat menemukan rincian warisan ini di bawah [topik platform masing-masing](concepts-all-platforms.md) dalam panduan ini.

Elastic Beanstalk mengonfigurasi server proksi pada instans lingkungan Anda untuk meneruskan lalu lintas web ke aplikasi web utama pada URL akar lingkungan; misalnya, `http://my-env.elasticbeanstalk.com`.

Secara default, Elastic Beanstalk mengonfigurasi proksi untuk meneruskan permintaan masuk pada port 80 untuk aplikasi web utama Anda pada port 5000. Anda dapat mengonfigurasi nomor port ini dengan menetapkan properti lingkungan `PORT` menggunakan namespace [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) dalam file konfigurasi, seperti yang ditunjukkan dalam contoh berikut.

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

Untuk informasi selengkapnya tentang pengaturan variabel lingkungan untuk aplikasi Anda, lihat [Pengaturan opsi](ebextensions-optionsettings.md).

Aplikasi Anda harus mendengarkan pada port yang dikonfigurasi untuk itu di proksi. Jika Anda mengubah port default menggunakan properti lingkungan `PORT`, kode Anda dapat mengaksesnya dengan membaca nilai variabel lingkungan `PORT`. Sebagai contoh, panggilan `os.Getenv("PORT")` di Go, atau `System.getenv("PORT")` di Java. Jika Anda mengonfigurasi proksi Anda untuk mengirim lalu lintas ke beberapa proses aplikasi, Anda dapat mengonfigurasi beberapa properti lingkungan, dan menggunakan nilai-nilai mereka di kedua konfigurasi proksi dan kode aplikasi Anda. Pilihan lain adalah untuk lulus nilai port untuk proses sebagai argumen perintah dalam `Procfile`. Untuk mengetahui informasi selengkapnya, lihat [Buildfile dan Procfile](platforms-linux-extend.build-proc.md).

## Mengonfigurasi nginx
<a name="platforms-linux-extend.proxy.nginx"></a>

Elastic Beanstalk menggunakan nginx sebagai proksi terbalik default untuk memetakan aplikasi Anda ke penyeimbangan beban Elastic Load Balancing Anda. Elastic Beanstalk menyediakan konfigurasi nginx default yang dapat Anda perpanjang atau timpa sepenuhnya dengan konfigurasi Anda sendiri.

**catatan**  
Saat Anda menambahkan atau mengedit file konfigurasi `.conf` nginx, pastikan untuk menyandikannya sebagai UTF-8.

Untuk memperpanjang konfigurasi nginx default Elastic Beanstalk, tambahkan file konfigurasi `.conf` ke folder yang bernama `.platform/nginx/conf.d/` dalam paket sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk mencakup file `.conf` dalam folder ini secara automatik.

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

File konfigurasi termasuk dalam `http` blok konfigurasi nginx. `.platform/nginx/conf.d/` Gunakan lokasi ini untuk konfigurasi yang berlaku secara global.

Untuk memperluas konfigurasi blok `server` nginx default, `.conf` tambahkan file konfigurasi ke folder `.platform/nginx/conf.d/elasticbeanstalk/` bernama dalam bundel sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk menyertakan file dalam folder ini di dalam blok`.conf`. `server`

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

Gunakan lokasi ini untuk menambahkan konfigurasi khusus server, seperti blok lokasi tambahan, halaman kesalahan kustom, atau arahan tingkat server. Contoh berikut menambahkan blok lokasi kustom.

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

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

Untuk mengesampingkan konfigurasi nginx default Elastic Beanstalk sepenuhnya, sertakan konfigurasi di paket sumber Anda di `.platform/nginx/nginx.conf`:

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

Jika Anda menimpa konfigurasi nginx Elastic Beanstalk, tambahkan baris berikut ke `nginx.conf` untuk menarik dalam konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md), pemetaan aplikasi otomatis, dan file statis.

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

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

Platform Tomcat, Node.js, PHP, dan Python memungkinkan Anda memilih server proksi Apache HTTPD sebagai alternatif untuk nginx. Ini bukan default. Contoh berikut mengonfigurasi Elastic Beanstalk untuk menggunakan Apache HTTPD.

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

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache
```
Anda dapat memperpanjang Elastic Beanstalk konfigurasi Apache default dengan file konfigurasi tambahan Anda. Atau, Anda dapat sepenuhnya mengganti konfigurasi Apache default Elastic Beanstalk.  
Untuk memperpanjang konfigurasi Apache default Elastic Beanstalk, tambahkan file konfigurasi `.conf` ke folder bernama `.platform/httpd/conf.d` di paket sumber aplikasi Anda. Konfigurasi Apache Elastic Beanstalk mencakup file `.conf` di folder ini secara otomatis.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   -- httpd
|      -- conf.d
|         -- port5000.conf
|         -- ssl.conf
-- index.jsp
```
Sebagai contoh, konfigurasi Apache 2.4 berikut menambahkan listener di port 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>
```
Untuk mengesampingkan konfigurasi Apache default Elastic Beanstalk sepenuhnya, sertakan konfigurasi dalam paket sumber Anda di `.platform/httpd/conf/httpd.conf`.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   `-- httpd
|       `-- conf
|           `-- httpd.conf
`-- index.jsp
```
Jika Anda mengganti konfigurasi Apache Elastic Beanstalk, tambahkan baris berikut ke `httpd.conf` Anda untuk menarik dalam konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md), pemetaan aplikasi otomatis, dan file statis.  

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