Apache & Nginx. Ditautkan oleh satu rantai

Bagaimana Bundel Apache & Nginx Diimplementasikan di Timeweb



Bagi banyak perusahaan, Nginx + Apache + PHP adalah bundel yang sangat umum dan umum, dan Timeweb tidak terkecuali di sini. Namun, mencari tahu persis bagaimana penerapannya bisa menarik dan bermanfaat.



gambar



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



Pengaturan utama Apache dilakukan di file konfigurasi Apache itu sendiri, dan pengaturan untuk situs klien dilakukan melalui file .htaccess... .htaccess adalah file konfigurasi di mana klien dapat secara independen mengkonfigurasi aturan dan perilaku server web. Pengaturan ini akan dikhususkan untuk situsnya. Misalnya, berkat fungsionalitas Apache, pengguna dapat mengubah mode operasi dalam versi PHP yang sama dari mod_php ke mod_cgi; Anda dapat menyesuaikan pengalihan, pengoptimalan 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. Juga untuk Nginx, kami telah mengembangkan modul keamanan yang memungkinkan kami melindungi data pengguna kami, misalnya, untuk memisahkan hak akses.



Mari kita bayangkan bahwa beberapa pengguna mengunjungi situs klien kita. Pertama, pengguna masuk ke Nginx, yang menyajikan konten statis. Itu terjadi secara instan. Kemudian, saat memuat PHP, Nginx mengalihkan permintaan ke Apache. Dan Apache, bersama dengan PHP, sudah menghasilkan konten dinamis.



Fitur bundel Apache & Nginx di Timeweb



Hosting virtual kami menerapkan 2 skema utama untuk Apache & Nginx: Dibagikan dan Khusus .







Skema bersama Skema ini digunakan untuk sebagian besar pengguna. Hal ini dibedakan dari kesederhanaan dan intensitas sumber dayanya: skema Bersama menggunakan sumber daya yang lebih sedikit, oleh karena itu tarifnya juga lebih murah. Menurut skema ini, satu Nginx sedang berjalan di server, yang memungkinkan melayani semua permintaan pengguna, dan beberapa instance Apache.



Skema Bersama telah meningkat untuk waktu yang lama: secara bertahap kami memperbaiki kekurangannya. Dengan mudah, ini dapat dilakukan tanpa harus mengubah kode sumber. Skema





bersama



Skema khusus



Dedicated membutuhkan lebih banyak sumber daya, sehingga tarifnya lebih mahal bagi pelanggan. Dalam skema Dedicated, Apache terpisah akan dimunculkan untuk setiap klien. Sumber daya di sini dicadangkan 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 sendiri dimulai.





Skema khusus



Wilayah aman. Mengonfigurasi Zona di Nginx



Sebelumnya, kami menggunakan banyak zona memori bersama (zona) untuk Nginx - satu blok server per domain. Konfigurasi ini membutuhkan banyak sumber daya, karena zona terpisah dibuat untuk setiap situs. Akan tetapi, dalam pengaturan Nginx, kebanyakan situs memiliki tipe yang sama, sehingga mereka dapat ditempatkan di satu zona berkat penggunaan petunjuk peta di ngx_http_map_module , yang memungkinkan Anda untuk mengatur pemetaan. Misalnya, kami memiliki templat zona yang harus kami berikan variabel: jalur ke situs, versi PHP, pengguna. Dengan demikian, membaca ulang konfigurasi Nginx, yaitu reload, telah dipercepat.



Konfigurasi ini sangat menghemat sumber daya RAM dan membuat Nginx bekerja lebih cepat.



Reload tidak akan berfungsi!



Dalam skema Bersama, kami menghilangkan kebutuhan untuk me-restart (memuat ulang) Apache saat mengubah pengaturan situs. Sebelumnya, ketika satu klien ingin menambahkan domain atau mengubah versi PHP, pemuatan ulang Apache wajib diperlukan, yang menyebabkan penundaan dalam respons dan berdampak negatif pada kinerja situs.



Kami menghilangkan reload dengan membuat konfigurasi dinamis. Berkat mpm-itk (modul Apache), setiap proses berjalan dari pengguna terpisah, yang meningkatkan keamanan. Metode ini memungkinkan Anda mentransfer data tentang pengguna dan document_root-nya dari Nginx ke Apache2. Jadi, Apache tidak berisi konfigurasi situs, ia menerimanya secara dinamis, dan memuat ulang tidak lagi diperlukan.





Konfigurasi skema bersama



Bagaimana dengan Docker?



Banyak perusahaan telah pindah ke sistem berbasis kontainer. Timeweb saat ini sedang mempertimbangkan kemungkinan transisi semacam itu. Tentu ada pro dan kontra di setiap solusi.



Seiring dengan keuntungan yang tak terbantahkan, sistem kontainer memberi pengguna sumber daya yang lebih sedikit. Di Timeweb, berkat skema operasi hosting yang dijelaskan, pengguna tidak memiliki batas memori. Ini menerima lebih banyak sumber daya daripada wadah. Selain itu, pengguna dapat memuat lebih banyak modul Apache.



Timeweb memberdayakan sekitar 500.000 situs web. Kami mengambil tanggung jawab besar dan tidak membuat perubahan instan yang tidak perlu pada arsitektur yang kompleks. Paket Apache & Nginx dapat diandalkan dan telah teruji oleh waktu. Kami, pada gilirannya, berusaha keras untuk mencapai kinerja maksimum melalui konfigurasi yang unik.



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



All Articles