Konfigurasi proksi terbalik - AWS Elastic Beanstalk

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

Konfigurasi proksi terbalik

Semua versi platform Amazon Linux 2 dan Amazon Linux 2023 menggunakan nginx sebagai server proxy terbalik default mereka. Platform Tomcat, Node.jsPHP, dan Python juga mendukung HTTPD Apache 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 versi AMI platform Amazon Linux (sebelum Amazon Linux 2) Anda mungkin harus mengonfigurasi server proxy secara berbeda. Anda dapat menemukan rincian warisan ini di bawah topik platform masing-masing dalam panduan ini.

Elastic Beanstalk mengonfigurasi server proxy pada instance lingkungan Anda untuk meneruskan lalu lintas web ke aplikasi web utama di root lingkungan; misalnyaURL,. 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 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.

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 informasi selengkapnya, lihat Buildfile dan Procfile.

Mengonfigurasi nginx

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 -8. UTF

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

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 Elastic Beanstalk meningkatkan pelaporan dan pemantauan kesehatan, pemetaan aplikasi otomatis, dan file statis.

include conf.d/elasticbeanstalk/*.conf;

Mengkonfigurasi Apache HTTPD

Platform Tomcat, Node.jsPHP, dan Python memungkinkan Anda memilih server proxy HTTPD Apache sebagai alternatif untuk nginx. Ini bukan default. Contoh berikut mengkonfigurasi Elastic Beanstalk untuk menggunakan Apache. HTTPD

contoh .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, berikut konfigurasi Apache 2.4 menambahkan pendengar pada port 5000.

contoh .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
catatan

Jika Anda mengganti konfigurasi Apache Elastic Beanstalk, tambahkan baris berikut ke httpd.conf Anda untuk menarik dalam konfigurasi Elastic Beanstalk untuk Elastic Beanstalk meningkatkan pelaporan dan pemantauan kesehatan, pemetaan aplikasi otomatis, dan file statis.

IncludeOptional conf.d/elasticbeanstalk/*.conf