Apache dan Nginx. Terhubung oleh satu rantai

Bagaimana kombinasi Apache & Nginx diimplementasikan di Timeweb

Bagi banyak perusahaan, Nginx + Apache + PHP adalah kombinasi yang sangat umum dan umum, tidak terkecuali Timeweb. Namun, memahami secara pasti bagaimana penerapannya bisa menjadi hal yang menarik dan bermanfaat.

Apache dan Nginx. Terhubung oleh satu rantai

Penggunaan kombinasi tersebut, tentu saja, ditentukan oleh kebutuhan klien kami. Baik Nginx dan Apache memainkan peran khusus, masing-masing memecahkan masalah tertentu.

pengaturan dasar Apache dilakukan di file konfigurasi Apache itu sendiri, dan pengaturan untuk situs klien dilakukan melalui berkas .htaccess. .htaccess adalah file konfigurasi di mana klien dapat secara mandiri mengonfigurasi aturan dan perilaku server web. Pengaturan ini akan berlaku khusus untuk situsnya. Misalnya, berkat fungsionalitas Apache, pengguna dapat mengubah mode operasi dalam versi PHP yang sama dari mod_php ke mod_cgi; Anda dapat mengatur pengalihan, pengoptimalan untuk SEO, URL yang nyaman, beberapa batasan untuk PHP.

Nginx digunakan sebagai server proxy untuk mengarahkan lalu lintas ke Apache dan sebagai server web untuk menyajikan konten statis. Kami juga telah mengembangkan modul keamanan untuk Nginx yang memungkinkan kami melindungi data pengguna kami, misalnya, untuk memisahkan hak akses.

Bayangkan seorang pengguna mengunjungi situs web klien kita. Pertama, pengguna masuk ke Nginx, yang menyajikan konten statis. Itu terjadi secara instan. Kemudian, saat memuat PHP, Nginx meneruskan permintaan tersebut ke Apache. Dan Apache, bersama dengan PHP, sudah menghasilkan konten dinamis.

Fitur bundel Apache & Nginx di Timeweb

Hosting virtual kami menerapkan 2 skema operasi utama untuk Apache & Nginx: Dibagi dan Berdedikasi.

Skema bersama

Skema ini digunakan untuk sebagian besar pengguna. Hal ini dibedakan dari kesederhanaan dan intensitas sumber dayanya: skema Bersama menggunakan lebih sedikit sumber daya, itulah sebabnya tarifnya lebih murah. Menurut skema ini, server menjalankan satu Nginx, yang memungkinkannya melayani semua permintaan pengguna, dan beberapa contoh Apache.

Skema Bersama telah diperbaiki sejak lama: secara bertahap kami memperbaiki kekurangannya. Mudahnya, ini dapat dilakukan tanpa perlu mengubah kode sumber.

Apache dan Nginx. Terhubung oleh satu rantai
Skema bersama

Skema khusus

Dedicated membutuhkan lebih banyak sumber daya, sehingga tarifnya lebih mahal bagi pelanggan. Dalam skema Dedicated, setiap klien mendapatkan Apache terpisah. Sumber daya di sini disediakan untuk klien, mereka dialokasikan secara eksklusif. Cara kerjanya: Ada beberapa versi PHP di server. Kami mendukung versi 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Jadi, untuk setiap versi PHP, Apache-nya diluncurkan.

Apache dan Nginx. Terhubung oleh satu rantai
Skema khusus

Wilayah aman. Menyiapkan zona di Nginx

Sebelumnya, untuk Nginx, kami menggunakan banyak zona (zona) memori bersama - satu blok server per domain. Penyiapan ini memerlukan banyak sumber daya, karena zona terpisah dibuat untuk setiap situs. Namun, dalam pengaturan Nginx, sebagian besar situs memiliki tipe yang sama, sehingga dapat ditempatkan dalam satu zona berkat penggunaan arahan peta dalam modul ngx_http_map_module, yang memungkinkan Anda menentukan korespondensi. Misalnya, kita memiliki templat zona di mana kita harus menyediakan variabel: jalur ke situs, versi PHP, pengguna. Dengan demikian, pembacaan ulang konfigurasi Nginx, yaitu memuat ulang, dipercepat.

Konfigurasi ini sangat menghemat sumber daya RAM dan mempercepat Nginx.

Muat ulang tidak akan berhasil!

Dalam skema Bersama, kami menghilangkan kebutuhan untuk memuat ulang Apache saat mengubah pengaturan situs web. Sebelumnya, ketika seorang klien ingin menambahkan domain atau mengubah versi PHP, Apache harus memuat ulang secara wajib, yang menyebabkan penundaan respons dan berdampak negatif pada kinerja situs.

Kami menghilangkan pemuatan ulang dengan membuat konfigurasi dinamis. Terimakasih untuk mpm-itk (Modul Apache), setiap proses berjalan sebagai pengguna terpisah, yang meningkatkan tingkat keamanan. Metode ini memungkinkan Anda mentransfer data tentang pengguna dan document_root miliknya dari Nginx ke Apache2. Dengan demikian, Apache tidak berisi konfigurasi situs, ia menerimanya secara dinamis, dan memuat ulang tidak lagi diperlukan.

Apache dan Nginx. Terhubung oleh satu rantai
Konfigurasi skema bersama

Bagaimana dengan Docker?

Banyak perusahaan telah beralih ke sistem berbasis kontainer. Timeweb saat ini sedang mempertimbangkan kemungkinan transisi tersebut. Tentu saja, ada pro dan kontra dalam setiap keputusan.

Seiring dengan keuntungan yang tidak dapat disangkal, sistem kontainer menyediakan sumber daya yang lebih sedikit kepada pengguna. Di Timeweb, berkat skema hosting yang dijelaskan, pengguna tidak memiliki batasan dalam RAM. Ia menerima lebih banyak sumber daya daripada yang ada di dalam wadah. Selain itu, pengguna mungkin memuat lebih banyak modul Apache.

Timeweb mendukung sekitar 500 situs web. Kami mengambil tanggung jawab besar dan tidak melakukan perubahan instan dan tidak dapat dibenarkan terhadap arsitektur yang kompleks. Kombinasi Apache & Nginx dapat diandalkan dan teruji oleh waktu. Kami, pada gilirannya, mencoba mencapai kinerja maksimal melalui konfigurasi unik.

Untuk pengoperasian sejumlah besar situs berkualitas tinggi dan cepat, Anda perlu menggunakan template dan konfigurasi dinamis Apache dan Nginx. Ini memungkinkan Anda mengelola sejumlah besar server serupa dengan mudah dan cepat.

Sumber: www.habr.com

Tambah komentar