5 Konfigurasi Server Umum untuk Aplikasi Web Anda

Blog image

5 Konfigurasi Server Umum Untuk Aplikasi Web

Pengantar

Ketika memutuskan arsitektur istanbul escort server mana yang akan digunakan untuk lingkungan Anda, ada banyak faktor yang perlu dipertimbangkan, seperti kinerja, skalabilitas, ketersediaan, keandalan, biaya, dan kemudahan manajemen.

Berikut adalah daftar setup server yang umum digunakan, dengan deskripsi singkat masing-masing, termasuk pro dan kontra. Ingatlah bahwa semua konsep yang tercakup di sini ümraniye escort dapat digunakan dalam berbagai kombinasi satu sama lain, dan setiap lingkungan memiliki persyaratan yang berbeda, jadi tidak ada konfigurasi tunggal dan benar.

 

1. Semuanya Di Satu Server

Seluruh lingkungan berada di server tunggal. Untuk aplikasi web biasa, itu termasuk server web, porno izle server aplikasi, dan server database. Variasi umum dari konfigurasi ini adalah tumpukan LAMP, yang merupakan singkatan dari Linux, Apache, MySQL, dan PHP, pada satu server.

Use Case: Baik untuk membuat aplikasi dengan cepat, karena ini adalah penyiapan yang paling sederhana, tapi sedikit menawarkan cara skalabilitas dan isolasi komponen.


Kelebihan:

Sederhana

Kontra:

Aplikasi dan database bersaing untuk sumber daya server yang sama (CPU, Memory, I / O, dll.) Yang, selain dari kinerja yang buruk, dapat membuat sulit untuk menentukan sumber (aplikasi atau database) kinerja burukTidak mudah tersamar secara horizontal.

Tutorial Yang Berhubungan:

How To Install LAMP On Ubuntu 14.04

 

2. Pisahkan Database Server

Sistem manajemen basis data (DBMS) dapat dipisahkan dari lingkungan lainnya untuk menghilangkan kontensi sumber daya antara aplikasi dan database, dan untuk meningkatkan keamanan dengan menghapus database dari DMZ, atau internet publik.

Use Case: Baik untuk membuat aplikasi dengan cepat, namun tetap membuat aplikasi dan database agar tidak memperjuangkan sumber daya sistem yang sama.


Kelebihan:

Aplikasi dan tingkat database tidak bersaing untuk sumber daya server yang sama (CPU, Memory, I / O, dll.)Anda dapat secara vertikal menghitung setiap tingkat secara terpisah, dengan menambahkan lebih banyak sumber daya ke server mana pun yang membutuhkan peningkatan kapasitasBergantung pada pengaturan Anda, mungkin akan meningkatkan keamanan dengan menghapus database Anda dari DMZ

Kontra:

Sedikit lebih kompleks setup dari server tunggalMasalah kinerja dapat muncul jika koneksi jaringan antara kedua server sangat tinggi (yaitu server secara geografis jauh berbeda satu sama lain), atau bandwidth terlalu rendah untuk jumlah data yang ditransfer.

Tutorial Yang Berhubungan:

How To Set Up a Remote Database to Optimize Site Performance with MySQLHow to Migrate A MySQL Database To A New Server On Ubuntu 14.04

 

3. Load Balancer (Reverse Proxy)

Load balancers dapat ditambahkan ke lingkungan server untuk meningkatkan kinerja dan kehandalan dengan mendistribusikan beban kerja ke beberapa server. Jika salah satu server yang load seimbang gagal, server lain akan menangani lalu lintas yang masuk sampai server yang gagal menjadi sehat kembali. Hal ini juga dapat digunakan untuk melayani beberapa aplikasi melalui domain dan port yang sama, dengan menggunakan layer 7 (application layer) reverse proxy.

Contoh perangkat lunak yang mampu melakukan reverse proxy load balancing: HAProxy, Nginx, dan Varnish.

Use Case: Berguna di lingkungan yang membutuhkan penskalaan dengan menambahkan lebih banyak server, juga dikenal sebagai penskalaan horisontal.


Kelebihan:

Memungkinkan penskalaan horisontal, yaitu kapasitas lingkungan dapat ditingkatkan dengan menambahkan lebih banyak server ke dalamnyaDapat melindungi terhadap serangan DDOS dengan membatasi koneksi klien ke jumlah dan frekuensi yang masuk akal

Kontra:

Penyeimbang beban bisa menjadi hambatan kinerja jika tidak memiliki cukup sumber daya, atau jika dikonfigurasi dengan burukDapat mengenalkan kompleksitas yang memerlukan pertimbangan tambahan, seperti di mana melakukan penghentian SSL dan cara menangani aplikasi yang memerlukan sesi lengketPenyeimbang beban adalah satu titik kegagalan; Jika turun, seluruh layanan Anda bisa turun. Penyiapan ketersediaan tinggi (HA) adalah infrastruktur tanpa satu titik kegagalan. Untuk mempelajari cara menerapkan pengaturan HA, Anda dapat membaca this section of How To Use Floating IPs.

Tutorial Yang Berhubungan:

An Introduction to HAProxy and Load Balancing ConceptsHow To Use HAProxy As A Layer 4 Load Balancer for WordPress Application ServersHow To Use HAProxy As A Layer 7 Load Balancer For WordPress and Nginx

 

4. Accelerator HTTP (Caching Reverse Proxy)

Sebuah akselerator HTTP, atau caching HTTP reverse proxy, dapat digunakan untuk mengurangi waktu yang dibutuhkan untuk menyajikan konten kepada pengguna melalui berbagai teknik. Teknik utama yang digunakan dengan akselerator HTTP adalah respons caching dari server web atau aplikasi di memori, sehingga permintaan masa depan untuk konten yang sama dapat dilayani dengan cepat, dengan interaksi yang kurang tidak perlu dengan server web atau aplikasi.

Contoh perangkat lunak yang mampu melakukan akselerasi HTTP: Varnish, Squid, Nginx.

Use Case: Berguna dalam lingkungan dengan konten-berat aplikasi web yang dinamis, atau dengan banyak file yang sering diakses.


Kelebihan:

Meningkatkan kinerja situs dengan mengurangi beban CPU di server web, melalui caching dan kompresi, sehingga meningkatkan kapasitas penggunaDapat digunakan sebagai penyeimbang beban reverse proxyBeberapa perangkat lunak caching dapat melindungi terhadap serangan DDOS

Kontra:

Membutuhkan tuning untuk mendapatkan performa terbaik darinyaJika tingkat cache-hit rendah, itu bisa mengurangi performa

Tutorial Yang Berhubungan:

How To Install WordPress, Nginx, PHP, and Varnish on Ubuntu 12.04How To Configure a Clustered Web Server with Varnish and NginxHow To Configure Varnish for Drupal with Apache on Debian and Ubuntu

 

5. Replikasi Database Master-Slave

Salah satu cara untuk meningkatkan kinerja sistem basis data yang melakukan banyak pembacaan dibandingkan dengan penulisan, seperti CMS, adalah dengan menggunakan replikasi database master-slave. Replikasi master-slave membutuhkan master dan satu atau lebih node budak. Dalam konfigurasi ini, semua update dikirim ke node utama dan dibaca dapat didistribusikan ke semua node.

Use Case: Bagus untuk meningkatkan kinerja baca untuk tingkat database aplikasi.

Berikut adalah contoh setup replikasi master-slave, dengan satu slave node:


Kelebihan:

Meningkatkan kinerja baca database dengan menyebarkan membaca seluruh budakDapat meningkatkan kinerja tulis dengan menggunakan master secara eksklusif untuk pembaruan (tidak ada waktu untuk melayani permintaan baca)

Kontra:

Aplikasi yang mengakses database harus memiliki mekanisme untuk menentukan node database mana yang harus dikirimi update dan baca permintaanPembaruan untuk budak bersifat asinkron, jadi ada kemungkinan isinya bisa kedaluwarsaJika master gagal, tidak ada update yang bisa dilakukan pada database sampai masalah tersebut diperbaikiTidak memiliki built-in failover jika terjadi kegagalan master node

Tutorial Yang Berhubungan :

How To Optimize WordPress Performance With MySQL Replication On Ubuntu 14.04How To Set Up Master Slave Replication in MySQL

 

Contoh: Menggabungkan Konsep

Hal ini dimungkinkan untuk memuat keseimbangan server caching, selain server aplikasi, dan menggunakan replikasi database di satu lingkungan. Tujuan menggabungkan teknik ini adalah untuk menuai keuntungan masing-masing tanpa mengenalkan terlalu banyak masalah atau kompleksitas. Berikut adalah contoh diagram seperti apa lingkungan server:


Anggap bahwa penyeimbang beban dikonfigurasi untuk mengenali permintaan statis (seperti gambar, css, javascript, dll.) Dan mengirim permintaan tersebut langsung ke server caching, dan mengirim permintaan lainnya ke server aplikasi.

Berikut adalah deskripsi tentang apa yang akan terjadi bila pengguna mengirimkan permintaan konten dinamis:

Pengguna meminta konten dinamis dari http://example.com/ (penyeimbang beban)Penyerah beban mengirimkan permintaan ke aplikasi-backendApp-backend dibaca dari database dan mengembalikan konten yang diminta untuk load balancerPenyerah beban mengembalikan data yang diminta ke pengguna

Jika pengguna meminta konten statis:

Pengimbang beban memeriksa cache-backend untuk melihat apakah konten yang diminta di-cache (cache-hit) atau tidak (cache-miss)Jika cache-hit: kembalikan konten yang diminta ke penyeimbang beban dan lompat ke Langkah 7. Jika cache-miss: server cache meneruskan permintaan ke app-backend, melalui penyeimbang bebanPenyeimbang beban meneruskan permintaan ke app-backendApp-backend dibaca dari database kemudian mengembalikan konten yang diminta ke penyeimbang bebanPenyeimbang beban meneruskan respon terhadap cache-backendCache-backend cache konten kemudian mengembalikannya ke penyeimbang bebanPenyerah beban mengembalikan data yang diminta ke pengguna

Lingkungan ini masih memiliki dua titik kegagalan tunggal (load balancer dan master database server), namun memberikan keandalan dan manfaat kinerja lainnya yang dijelaskan pada setiap bagian di atas.

 

Kesimpulan

Sekarang setelah Anda mengenal beberapa penyiapan server dasar, Anda harus memiliki gagasan bagus tentang jenis setup yang akan Anda gunakan untuk aplikasi Anda sendiri. Jika Anda bekerja untuk memperbaiki lingkungan Anda sendiri, ingatlah bahwa proses berulang adalah menghindari terlalu banyak kompleksitas yang terlalu cepat.

Beri tahu kami tentang penyiapan yang Anda rekomendasikan atau ingin pelajari lebih lanjut di komentar di bawah ini!