Tutorial utama Alibaba Cloud Nginx: dari penyebaran laman web statik hingga konfigurasi proksi terbalik berprestasi tinggi
Dalam transformasi digital perusahaan hari ini, pembinaan sistem web yang sangat tersedia, serentak dan elegan tidak dapat dipisahkan dari infrastruktur awan yang wajar dan pemilihan pelayan web yang sangat baik. Pelayan awan Alibaba Cloud ECS(Elastic Compute Service), sebagai pangkalan kuasa pengkomputeran domestik dan global teratas, dilengkapi dengan pelayan pemacu acara tak segerak berprestasi tinggi
Nginx
, Telah menjadi konfigurasi standard kebanyakan seni bina Internet.
Sama ada syarikat pergi ke luar negara, e-dagang rentas sempadan, atau aplikasi serentak tinggi tempatan, menjelaskan konfigurasi teras Nginx adalah kursus wajib bagi arkitek sistem dan jurutera operasi dan penyelenggaraan. Artikel ini akan berdasarkan pertempuran sebenar, dari
Pembinaan persekitaran, penyebaran laman web statik, proksi terbalik dan konfigurasi pemisahan dinamik dan statik
Dan dimensi lain, membawa anda untuk memahami penalaan lanjutan Nginx di persekitaran Alibaba Cloud.
Kerja persediaan: penyediaan infrastruktur
Sebelum memulakan semua konfigurasi, anda perlu mempunyai pelayan Linux yang berjalan di awan.
📌Peringatan pemilihan seni bina: Untuk syarikat luar negara atau perniagaan yang mempunyai keperluan yang ketat untuk pengecualian pemfailan, versi antarabangsa Alibaba Cloud (seperti Hong Kong, Singapura, dan Node Barat AS) biasanya dipilih; untuk perniagaan yang memperdalam pasaran domestik, mereka lebih cenderung Node daratan versi domestik. Banyak syarikat luar negara tidak dapat mendaftar secara langsung kerana kekurangan kaedah pembayaran di luar negara atau maklumat identiti di luar negara. Pada masa ini, pembelian akaun Alibaba Cloud dan pengisian semula yang sesuai melalui penyedia saluran rasmi telah menjadi pilihan yang paling cekap dan selamat dalam industri.
1. Buka port kumpulan keselamatan
Apabila contoh ECS anda sudah siap, anda perlu log masuk ke konsol Alibaba Cloud terlebih dahulu, tambahkan peraturan arah ke kumpulan keselamatan (Kumpulan Keselamatan) yang sesuai dengan contoh, dan lepaskan dua port web teras berikut:
Port TCP 80: untuk akses HTTP biasa.
Port TCP 443: Akses HTTPS untuk penyulitan.
2. Kemas kini persekitaran sistem dan pemasangan Nginx
Dengan arus perdana semasa
Alinux 3 / CentOS 8
Sebagai contoh, kami menggunakan
Dnf
Atau
Yum
Pengurus pakej cepat memasang Nginx:
Bash
# Kemas kini pakej sistem
Sudo dnf kemas kini-y
# Memasang Nginx
Sudo dnf install -y nginx
# Mulakan perkhidmatan dan tetapkan permulaan
Sudo systemctl start nginx
Sudo systemctl enable nginx
# Periksa status operasi Nginx
Sudo systemctl status nginx
Apabila status dipaparkan sebagai
Active (running)
Semasa memasukkan IP rangkaian awam ECS anda di penyemak imbas, jika anda melihat
Halaman selamat datang Nginx menunjukkan bahawa persekitaran yang mendasari telah berjaya dibina.
1. Pertempuran sebenar yang maju: penyebaran laman web statik yang sangat konsisten
Dalam pengeluaran sebenar, ubah suai fail konfigurasi utama secara langsung
/Etc/nginx/nginx.conf
Bukan tabiat yang baik. Amalan terbaik Nginx adalah
Pastikan profil utama bersih dan buat yang berasingan untuk setiap laman web bebas di/etc/nginx/conf.d/direktori. Fail konfigurasi conf
。
Katakan kita akan menggunakan aplikasi halaman tunggal moden depan (SPA, seperti projek Vue atau React).
1. Buat katalog projek secara standard
Bash
Sudo mkdir -p /www/wwwroot/mysite
# Muat naik fail dalam direktori dist yang dibungkus di bahagian depan ke direktori ini
2. Tulis fail konfigurasi laman web
Di dalam
/Etc/nginx/conf.d/
Buat di bawah direktori
Mysite. conf
:
Bash
Sudo vim /etc/nginx/conf.d/mysite.conf
Isi konfigurasi standard persekitaran pengeluaran berikut:
Nginx
Pelayan {
Listen 80;
Example.com www.example.com server_name; # Gantikan nama domain sebenar anda
Root/www/wwwroot/mysite;
Index index.html index.htm;
# Hidupkan pemampatan Gzip, meningkatkan kelajuan pemuatan skrin pertama dengan ketara di persekitaran rangkaian luar negara
Gzip on;
Gzip_min_length 1k;
Gzip_comp_level 6;
Gzip_types text/text/css application/json application/javascript text/xml;
# Selesaikan masalah 404 di bawah Mod Sejarah Laluan Depan (Mod Sejarah)
Lokasi/{
Try_files $ uri $ uri/ /index.html;
}
# Pengoptimuman cache sumber statik
Lokasi ~ * \.(Jpg | jpeg | png | gif | ico | css | js)$ {
Expires 7d;
Access_log off;
}
# Kesalahan pengalihan halaman
Error_page 404 /404.html;
Error_page 500 502 503 504 /50x.html;
Lokasi = /50x.html {
Root/usr/share/nginx/html;
}
}
⚠Peringatan pematuhan: Sekiranya resolusi nama domain anda menunjukkan contoh ECS Alibaba Cloud di daratan China, nama domain mesti didaftarkan di Kementerian Perindustrian dan Teknologi Maklumat, jika tidak, firewall sempadan Alibaba Cloud secara automatik akan menyekat permintaan akses port 80/443. Sekiranya perniagaan tidak dapat diajukan, disarankan untuk membeli perkhidmatan stesen antarabangsa melalui akaun Alibaba Cloud melalui penyedia saluran, dan menyebarkan laman web di Hong Kong, China atau di luar negara.
2. Kemajuan teras: proksi terbalik dan konfigurasi pemisahan dinamik dan statik
Reverse Proxy adalah fungsi Nginx yang paling berkuasa. Di bawah seni bina ini, Nginx, sebagai satu-satunya pintu masuk ke lalu lintas, bertanggungjawab untuk menerima permintaan dari pelanggan, dan kemudian meneruskan permintaan secara dalaman ke pelayan aplikasi sebenar di bahagian belakang (seperti Tomcat, Node.js, Go, Python atau Spring Boot).
Ini bukan sahaja dapat dilakukan
IP sebenar yang menyembunyikan pelayan belakang
Meningkatkan keselamatan dan membawa hasil serentak yang lebih tinggi.
1. Ejen terbalik asas
Katakan aplikasi Spring Boot belakang anda berjalan dalam contoh yang sama
8080
Di pelabuhan, dan tidak mahu mendedahkan port 8080 ke dunia luar. Kita boleh dikonfigurasikan seperti ini di Nginx:
2. Tahap pengeluaran maju: pemisahan dinamik dan statik dan penghalaan berbilang port
Dalam seni bina peringkat perusahaan yang lebih kompleks, kita sering menggunakan nama domain yang sama untuk membezakan dengan awalan URL
Sumber statik bahagian depan
Dengan
Antara muka API dinamik belakang
:
Melalui ini
Pemisahan dinamik dan statik
Konfigurasi Nginx tidak perlu mengganggu proses Java/Go back-end ketika memproses permintaan statik gambar, CSS, dan JS yang sangat serentak. Ia bukan sahaja dapat mengurangkan overhead memori pelayan belakang, tetapi juga menggandakan keseluruhan sistem laman web. Had throughput.
3. Panduan untuk keberkesanan konfigurasi dan operasi dan penyelenggaraan
Setelah mengubah suai fail konfigurasi Nginx,
Jangan mulakan semula perkhidmatan secara langsung
。 Sekiranya terdapat ralat sintaks dalam konfigurasi (misalnya, titik koma hilang
;
Atau pendakap tidak ditutup), mulakan semula secara langsung akan menyebabkan perkhidmatan web dalam talian runtuh serta-merta dan tidak dapat ditarik.
Proses beban lancar yang betul
1. Pengesahan tatabahasa: untuk memastikan keselamatan perkhidmatan dalam talian.
Pelaksanaan di terminal
Sudo nginx -t
Perintah.
Sekiranya kembali
Nginx: fail configuration... Ujian adalah successful
, Untuk membuktikan bahawa sintaks fail konfigurasi benar-benar positif
Betul.
2. Beban berat yang lancar (Reload): kemas kini haba henti sifar.
Perintah pelaksanaan:
Sudo systemctl reload nginx
。
Reload
Dengan
Restart
Berbeza, ia akan memandu proses Master Nginx untuk memperoleh proses Worker baru dengan lancar untuk memproses permintaan baru, sementara proses Worker lama akan dimusnahkan secara automatik setelah memproses sambungan semasa, sehingga mencapai
Perniagaan mempunyai gangguan sifar sepenuhnya
Kemas kini konfigurasi.
4. Ringkasan dan cadangan pemilihan perusahaan
Konfigurasi Nginx sentiasa berubah, tetapi tidak pernah berubah. Melalui pembahagian hos maya yang munasabah, ketat
Proxy_pass
Permintaan dihantar melalui kepala, dan dengan pautan rangkaian Alibaba Cloud ECS yang stabil dan sangat baik, anda dapat dengan mudah menyokong aplikasi PV setiap hari dengan purata satu juta.
Akhirnya, pengamal pengkomputeran awan kanan mengingatkan anda:
Reka bentuk seni bina mesti mematuhi pematuhan.
Sekiranya anda mendapati bahawa kelewatan API back-end terlalu tinggi kerana turun naik rangkaian rentas sempadan semasa proses konfigurasi, atau kehilangan peluang pasaran kerana kitaran pemfailan yang panjang, anda harus membuat rancangan jangka panjang pada peringkat awal perancangan. Bagi syarikat yang mempunyai permintaan khusus untuk pengembangan perniagaan di luar negara, pilih saluran Reseller pihak ketiga formal yang dijamin oleh kontrak rasmi.
Pembelian akaun Alibaba Cloud
Versi antarabangsa perkhidmatan, yang menghindari nama sebenarnya yang rumit dan sekatan akses wilayah dari sumbernya, adalah peraturan emas untuk memastikan kelancaran pelaksanaan perniagaan luar negeri.

