Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonfigurasi server proksi
Elastic Beanstalk NGINX dapat Apache HTTPD menggunakan atau sebagai proxy terbalik untuk memetakan aplikasi Anda ke penyeimbang beban Elastic Load Balancing di port 80. Nilai default-nya NGINX. Elastic Beanstalk menyediakan konfigurasi proksi default yang dapat Anda perluas atau sepenuhnya diganti dengan konfigurasi Anda sendiri.
Secara default, Elastic Beanstalk mengonfigurasi proxy untuk meneruskan permintaan ke aplikasi Anda pada port 5000. Anda dapat mengganti port default dengan mengatur properti lingkungan PORT
ke port yang didengarkan aplikasi utama Anda.
catatan
Port yang didengarkan aplikasi Anda tidak memengaruhi port yang didengarkan NGINX server untuk menerima permintaan dari penyeimbang beban.
Mengkonfigurasi server proxy pada versi platform Anda
Semua AL2 AL2 023/platform mendukung fitur konfigurasi proxy yang seragam. Untuk informasi selengkapnya tentang mengonfigurasi server proxy pada versi platform Anda yang menjalankan AL2 023/AL2, lihat. Konfigurasi proksi terbalik
Jika lingkungan Elastic Node.js Beanstalk Anda menggunakan versi platform AMI Amazon Linux (sebelumnya Amazon Linux 2), baca informasi di bagian ini.
Catatan
-
Informasi dalam topik ini hanya berlaku untuk cabang platform berbasis Amazon Linux AMI (AL1). AL2023/ cabang AL2 platform 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 () untuk pensiun. AL1 Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2
Node.jsPlatform ini menggunakan proxy terbalik untuk menyampaikan permintaan dari port 80 pada instance ke aplikasi Anda yang mendengarkan pada port 8081. Elastic Beanstalk menyediakan konfigurasi proksi default yang dapat Anda perluas atau sepenuhnya diganti dengan konfigurasi Anda sendiri.
Untuk memperluas konfigurasi default, tambahkan file .conf
ke /etc/nginx/conf.d
dengan file konfigurasi. Untuk contoh spesifik, lihatMengakhiri HTTPS pada EC2 instance yang menjalankan Node.js.
Node.jsPlatform menetapkan variabel PORT lingkungan ke port tempat server proxy melewati lalu lintas. Baca variabel ini dalam kode Anda untuk mengonfigurasi port untuk aplikasi Anda.
var port = process.env.PORT || 3000;
var server = app.listen(port, function () {
console.log('Server running at http://127.0.0.1:' + port + '/');
});
NGINXKonfigurasi default meneruskan lalu lintas ke server hulu yang diberi nodejs
nama di. 127.0.0.1:8081
Dimungkinkan untuk menghapus konfigurasi default dan menyediakan konfigurasi Anda sendiri dalam file konfigurasi.
contoh .ebextensions/proxy.config
Contoh berikut menghapus konfigurasi default dan menambahkan konfigurasi kustom yang meneruskan lalu lintas ke port 5000, bukan 8081.
files:
/etc/nginx/conf.d/proxy.conf:
mode: "000644"
owner: root
group: root
content: |
upstream nodejs {
server 127.0.0.1:5000;
keepalive 256;
}
server {
listen 8080;
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
set $year $1;
set $month $2;
set $day $3;
set $hour $4;
}
access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
access_log /var/log/nginx/access.log main;
location / {
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
gzip on;
gzip_comp_level 4;
gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
location /static {
alias /var/app/current/static;
}
}
/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash -xe
rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
service nginx stop
service nginx start
container_commands:
removeconfig:
command: "rm -f /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf"
Contoh konfigurasi (/etc/nginx/conf.d/proxy.conf
) menggunakan konfigurasi default di /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
sebagai basis untuk menyertakan blok server default dengan pengaturan kompresi dan log, dan pemetaan file statis.
removeconfig
Perintah menghapus konfigurasi default untuk wadah sehingga server proxy menggunakan konfigurasi kustom. Elastic Beanstalk menciptakan kembali konfigurasi default ketika setiap konfigurasi di-deploy. Untuk menjelaskan hal ini, dalam contoh berikut, post-configuration-deployment hook (/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh
) ditambahkan. Ini menghapus konfigurasi default dan memulai ulang server proksi.
catatan
Konfigurasi default mungkin berubah di versi Node.js platform yang akan datang. Gunakan versi konfigurasi terbaru sebagai dasar penyesuaian Anda untuk memastikan kompatibilitas.
Jika Anda mengganti konfigurasi default, Anda harus menentukan pemetaan dan kompresi file statis apa pun. GZIP Ini karena platform tidak dapat menerapkan pengaturan standar.