Mengonfigurasi 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.

Mengonfigurasi proksi terbalik

Elastic Beanstalk menggunakan nginx sebagai proksi terbalik untuk memetakan aplikasi Anda ke penyeimbang beban Elastic Load Balancing di port 80. Elastic Beanstalk menyediakan konfigurasi nginx default yang dapat Anda perluas atau sepenuhnya diganti dengan konfigurasi Anda sendiri.

Secara default, Elastic Beanstalk mengonfigurasi proksi nginx untuk meneruskan permintaan ke aplikasi Anda di port 5000. Anda dapat mengganti port default dengan mengatur PORT properti lingkungan ke port yang didengarkan aplikasi utama Anda.

catatan

Port yang didengar aplikasi Anda tidak mempengaruhi port yang didengar server nginx untuk menerima permintaan dari penyeimbang beban.

Konfigurasi server proksi di versi platform Anda

Semua platform AL2023/AL2 mendukung fitur konfigurasi proksi yang seragam. Untuk informasi selengkapnya tentang mengonfigurasi server proksi di versi platform Anda yang menjalankan AL2023/AL2, perluas bagian Konfigurasi Proksi Terbalik di. Memperluas platform Linux Elastic Beanstalk

Jika lingkungan Java SE Elastic Beanstalk Anda menggunakan versi platform Amazon Linux AMI (Amazon Linux 2 terdahulu), baca informasi tambahan di bagian ini.

Catatan
  • Informasi dalam topik ini hanya berlaku untuk cabang platform berbasis Amazon Linux AMI (AL1). Cabang platform AL2023/AL2 tidak kompatibel dengan versi platform Amazon Linux AMI (AL1) sebelumnya dan memerlukan pengaturan konfigurasi yang berbeda.

  • Pada tanggal 18 Juli 2022, Elastic Beanstalk menetapkan status semua cabang platform berdasarkan Amazon Linux AMI (AL1) untuk pensiun. Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux 2 Amazon Linux 2 Amazon Linux 2

Untuk memperpanjang konfigurasi nginx default Elastic beanstalk, tambahkan file konfigurasi .conf ke folder bernama .ebextensions/nginx/conf.d/ di paket sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk mencakup file .conf di folder ini secara otomatis.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | `-- myconf.conf `-- web.jar

Untuk mengganti konfigurasi nginx default Elastic Beanstalk sepenuhnya, sertakan konfigurasi di paket sumber Anda di .ebextensions/nginx/nginx.conf:

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- web.jar

Jika Anda mengganti konfigurasi nginx Elastic Beanstalk, tambahkan baris berikut ke nginx.conf untuk menarik konfigurasi Elastic Beanstalk untuk Pelaporan dan pemantauan kondisi yang ditingkatkan, pemetaan aplikasi otomatis, dan file statis.

include conf.d/elasticbeanstalk/*.conf;

Contoh konfigurasi berikut dari Aplikasi sampel Scorekeep mengganti konfigurasi default Elastic Beanstalk untuk melayani aplikasi web statis dari subdirektori public dari /var/app/current, saat platform Java SE menyalin kode sumber aplikasi. lokasi /api meneruskan lalu lintas ke rute di bawah /api/ ke aplikasi Spring yang mendengarkan di port 5000. Semua lalu lintas lainnya dilayani oleh aplikasi web di jalur akar.

user nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 33282; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include conf.d/*.conf; map $http_upgrade $connection_upgrade { default "upgrade"; } server { listen 80 default_server; root /var/app/current/public; location / { }git pull location /api { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/access.log main; client_header_timeout 60; client_body_timeout 60; keepalive_timeout 60; gzip off; gzip_comp_level 4; # Include the Elastic Beanstalk generated locations include conf.d/elasticbeanstalk/01_static.conf; include conf.d/elasticbeanstalk/healthd.conf; } }