SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Pada Fakultas Teknik
Universitas Islam Riau
ANDRI JIWANDONO 163510466
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS ISLAM RIAU PEKANBARU
2021
i
KATA PENGANTAR
Alhamdulillah, segala puji dan syukur penulis ucapkan kehadirat ALLAH Subhanahu Wa Taala, karena dengan rahmat dan hidayahnya penulis dapat menyelesaikan tugas akhir dengan judul “ANALISA PERBANDINGAN KINERJA WEB SERVER APACHE, NGINX, DAN LITESPEED DENGAN MENGGUNAKAN METODE STRESS TEST”. Tidak lupa juga sholawat dan salam penulis persembahkan kepada nabi Muhammad Shallallahu’alaihi Wassalam yang telah membawa umat manusia dari zaman jahiliah menuju zaman yang penuh imu pengetahuan seperti yang kita rasakan sekarang ini.
Tugas akhir ini disusun untuk memenuhi persyaratan mencapai gelar sarjana di jurusan Teknik informatika Fakultas Teknik Universitas Islam Riau, penulis mengangkat judul Skripsi ini bertujuan untuk memberikan informasi kepada para pembaca cara merancang web server yang baik dan pemilihan web server yang sesuai kebutuhan serta mengetahui kelebihan dan kekurangan dari tiap-tiap web server.
Terimakasih kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini, berkat nasihat dan dorongan dari berbagai pihak penulis bisa menyelesaikan skripsi ini, terimakasih penulis ucapkan kepada :
1. Kedua Orang Tua Saya Tercinta yaitu Bapak Samiaji dan Ibu Parmiasih yang selalu memberikan dukungan kepada saya untuk menyelesaikan skripsi ini.
2. Bapak Yudi Artha, S.T., M.Kom selaku pembimbing yang telah memberikan bimbingan dan pengarahan di sela-sela kesibukan beliau.
ii
3. Bapak dan Ibu dosen program studi Teknik Informatika Universitas Islam Riau yang telah memberikan ilmunya selama penulis berada pada bangku perkuliahaan.
4. Kepada seluruh keluarga besar kelas A angkatan 2016 Teknik Informatika Universitas Islam Riau.
5. Kepada seluruh staff TU teknik yang telah membantu kelancaran dalam proses adminitrasi penyelesaian skripsi.
Penulis juga menyadari kalau penulisan skripsi ini masih banyak memiliki kekurangan didalamnya, oleh karena itu penulis memohon maaf atas kekurangan dalam penulisan skripsi ini, dan berharap semua pihak bisa memberikan kritik dan saran yang membangun agar bisa menyempurnakan skripsi ini, dan bisa memberikan manfaat bagi penulis dan pembaca.
Pekanbaru, 10 November 2021
Andri Jiwandono
iii
DAFTAR ISI
KATA PENGANTAR ... i
DAFTAR ISI ... iii
DAFTAR GAMBAR ... v
DAFTAR TABEL ... vii
ABSTRAK ... viii
ABSTRACT ... ix
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 4
1.3 Rumusan Masalah ... 4
1.4 Batasan Masalah ... 5
1.5 Tujuan dan Manfaat Penelitian ... 5
1.5.1 Tujuan Penelitian ... 5
1.5.2 Manfaat Penelitian ... 6
BAB II LANDASAN TEORI ... 7
2.1 Tinjauan Pustaka ... 7
2.2 Dasar Teori ... 9
2.2.1 Perancangan Jaringan ... 9
2.2.2 Web Server ... 10
2.2.3 Apache ... 10
2.2.4 Nginx ... 11
2.2.5 Litespeed... 12
2.2.6 Perbandingan Web Server Apache, Nginx dan Litespeed ... 13
2.2.7 Netcraft ... 15
2.2.8 Stress Testing... 15
2.2.9 Pengujian Kinerja ... 20
BAB III METODOLOGI PENELITIAN ... 22
3.1 Definisi Masalah dan Analisis ... 22
3.2 Alat dan Bahan Penelitian... 23
iv
3.2.1 Perangkat Keras (Hardware) ... 23
3.2.2 Perangkat Lunak (Software) ... 23
3.3 Prosedur Penelitian ... 24
3.4 Pengembangan dan Perancangan Sistem ... 25
3.5 Skenario Pengujian ... 26
3.5.1 Dokumen Pengujian ... 29
3.6 Parameter Kinerja ... 30
BAB IV HASIL DAN PEMBAHASAN ... 32
4.1 Installasi Web Server Apache ... 32
4.2 Installasi Web Server Nginx ... 34
4.3 Installasi Web Server Openlitespeed ... 37
4.4 Konfigurasi Apache JMeter ... 41
4.5 Pengujian Kinerja Web Server ... 44
4.5.1 Pengujian Web Statis ... 45
4.5.2 Pengujian File PHP... 47
4.5.3 Pengujian File Gambar ... 50
4.5.4 Pengujian Wordpress ... 53
4.6 Hasil Pengujian Kinerja Web Server ... 56
4.7 Pengujian Log Web Server Apache Nginx dan openLitespeed ... 59
4.8 Pengujian Keamanan Web Server ... 62
4.9 Pembahasan ... 64
BAB V PENUTUP ... 65
5.1 Kesimpulan ... 65
5.2 Saran ... 66
DAFTAR PUSTAKA ... 67
v
DAFTAR GAMBAR
Gambar 1.1 Survei Web Server Netcraft (2020)... 3
Gambar 2.1 Perancangan Jaringan ... 9
Gambar 2.2 Langkah-langkah stress testing... 16
Gambar 3.1 Skema Prosedur Penelitian ... 24
Gambar 3.2 Topologi Jaringan ... 26
Gambar 3.3 Skema Tahap Penelitian ... 27
Gambar 3.4 Skema Pengujian Web Server ... 28
Gambar 3.5 Skema Pengujian Keamanan ... 29
Gambar 4.1 Remote web server Apache dengan Putty ... 32
Gambar 4.2 Install web server Apache ... 33
Gambar 4.3 Install MYSQL-server di Apache ... 33
Gambar 4.4 Install PHP di Apache ... 34
Gambar 4.5 Remote web server Nginx dengan Putty ... 34
Gambar 4.6 Install web server Nginx ... 35
Gambar 4.7 Install MYSQL-server di Nginx ... 35
Gambar 4.8 Install PHP di Nginx ... 36
Gambar 4.9 Konfigurasi PHP di web server Nginx ... 36
Gambar 4.10 Remote web server Openlitespeed dengan Putty ... 37
Gambar 4.11 Menambahkan repo web server Openlitespeed ... 38
Gambar 4.12 Install web server Openlitespeed ... 38
Gambar 4.13 Install MariaDB-server Openlitespeed ... 39
Gambar 4.14 Seting username dan password mariadb-server ... 39
Gambar 4.15 Merubah default username dan password Openlitespeed ... 40
Gambar 4.16 Merubah port Openlitespeed ... 40
Gambar 4.17 Konfigurasi PHP Openlitespeed ... 41
Gambar 4.18 Konfigurasi Apache JMeter 700 users dalam waktu 1 detik ... 42
Gambar 4.19 Konfigurasi Apache JMeter 700 users dalam waktu 5 detik ... 42
Gambar 4.20 Konfigurasi Apache JMeter 900 users dalam waktu 1 detik ... 43
Gambar 4.21 Konfigurasi Apache JMeter 900 users dalam waktu 5 detik ... 43
Gambar 4.22 Konfigurasi Apache JMeter 1100 users dalam waktu 1 detik ... 44
Gambar 4.23 Konfigurasi Apache JMeter 1100 users dalam waktu 5 detik ... 44
vi
Gambar 4.24 Tampilan halaman pengujian web statis ... 45
Gambar 4.25 Grafik hasil response time web statis... 47
Gambar 4.26 Tampilan halaman pengujian info PHP ... 48
Gambar 4.27 Grafik hasil response time info PHP ... 50
Gambar 4.28 Tampilan halaman pengujian file gambar... 51
Gambar 4.29 Grafik hasil pengujian file gambar ... 53
Gambar 4.30 Tampilan halaman pengujian wordpress ... 54
Gambar 4.31 Grafik hasil pengujian wordpress ... 56
Gambar 4.32 Grafik hasil pengujian troughput ... 57
Gambar 4.33 Grafik hasil pengujian sent ... 58
Gambar 4.34 Grafik hasil pengujian received ... 59
Gambar 4.35 Log Web Server Apache ... 60
Gambar 4.36 Log Web Server Nginx... 61
Gambar 4.37 Log Web Server Openlitespeed ... 61
Gambar 4.38 Hasil pengujian wireshark web server Apache ... 62
Gambar 4.39 Hasil pengujian wireshark web server Nginx ... 63
Gambar 4.40 Hasil pengujian wireshark web server Openlitespeed ... 63
vii
DAFTAR TABEL
Tabel 1.1 Survei Web Server Netcraft (2020) ... 3
Tabel 2.1 Perbandingan Web Server ... 13
Tabel 2.2 Ukuran metriks ... 18
Tabel 4.1 Hasil pengujian web statis di Apache ... 45
Tabel 4.2 Hasil pengujian web statis di Nginx ... 46
Tabel 4.3 Hasil pengujian web statis di Openlitespeed ... 46
Tabel 4.4 Hasil pengujian info PHP di Apache ... 48
Tabel 4.5 Hasil pengujian info PHP di Nginx ... 49
Tabel 4.6 Hasil pengujian info PHP di Openlitespeed ... 49
Tabel 4.7 Hasil pengujian file gambar di Apache ... 51
Tabel 4.8 Hasil pengujian file gambar di Nginx... 52
Tabel 4.9 Hasil pengujian file gambar di Openlitespeed ... 52
Tabel 4.10 Hasil pengujian wordpress di Apache ... 54
Tabel 4.11 Hasil pengujian wordpress di Nginx ... 55
Tabel 4.12 Hasil pengujian wordpress di Openlitespeed ... 55
viii
ABSTRAK
Internet sudah menjadi hal yang wajib digunakan dalam kemajuan era teknologi sekarang ini. Didalam mengakses sebuah web, ada dua interaksi hubungan yang terjadi yaitu Klien dan Server. Kinerja Web Server yang baik sangat mempengaruhi hubungan yang terjadi antara Klien dan Server. Oleh karena itu dibutuhkan Web Server yang handal dalam menangani jumlah permintaan yang banyak dari pengguna internet seperti Web Server Apache, Nginx dan Litespeed. Dari ketiga Web Server tersebut, akan diuji menggunakan aplikasi Apache JMeter dan Wireshark dengan menggunakan metode Stress Test dengan parameter Troughput, Sent, Received, Error, Response Time dan kemanan web untuk mengetahui keunggulan dan kekurangan dari Web Server tersebut agar hasil yang didapatkan bisa di implementasikan sesuai dengan kebutuhan. Untuk mendapatkan hasil yang lebih baik lagi didalam pengujian selanjutnya, disarankan kepada peneliti untuk menambah parameter lain dan menggunakan aplikasi lainnya agar penelitian ini semakin berkembang.
Kata Kunci : Web Server, Apache JMeter, Wireshark, Stress Test
ix
ABSTRACT
The internet has evolved into something that must be utilized in order for the current technological era to progress. When visiting a website, two exchanges take place:
the Client and the Server. The interaction between the Client and the Server is heavily influenced by the performance of the Web Server. As a result, a dependable Web Server, such as Apache, Nginx, or Litespeed, is required to manage a significant amount of requests from internet users. The Apache JMeter and Wireshark applications can be used to test the three Web Servers using the Stress Test method with parameters Troughput, Sent, Received, Error, Response Time, and web security to verify the pluses and minuses of each Web Server so that the results can be implemented as needed. Researchers can add more factors and use different programs to acquire better results in developing and testing so that this research will continue.
Keywords : Web Servers, Apache JMeter, Wireshark, Stress Testing
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kemajuan teknologi yang sangat pesat semakin memudahkan kegiatan dalam mengakses informasi dan menyelesaikan berbagai macam pekerjaan dengan cepat.
Salah satunya dengan menggunakan teknologi web, banyak perusahaan, lembaga, dan organisasi kini telah memanfaatkan aplikasi berbasis web yang dibangun untuk memudahkan pekerjaan dan mempercepat penyebaran informasi. Sebuah aplikasi berbasis web didesain dan dirancang untuk dapat diakses oleh banyak orang. Oleh karena itu peran sebuah web server sangat penting.
Sebagai komponen penting dalam sebuah fasilitas jaringan, web server diharapkan dapat memberi kinerja yang optimal dalam melayani segala request dari pengguna. Web server haruslah memiliki kemampuan yang baik untuk melayani banyak request sekaligus. Masalah akibat kinerja web server yang kurang optimal karena tidak dapat menangani beban request yang besar dapat mengakibatkan aplikasi web yang dikonfigurasi di dalamnya terganggu atau bahkan berhenti bekerja. Oleh karena itu sangat penting untuk mengetahui kinerja dan efektivitas sebuah web server sebelum digunakan, agar segala resiko kegagalan kinerja dapat dihindari.
Ada dua jenis bahasa program yang digunakan dalam membentuk sebuah halaman web, yaitu server side scripting dan client side scripting. Server side scripting adalah bahasa program yang tidak terlihat oleh pengguna, yang dijalankan oleh server web. Contoh dari server side scripting ini adalah PHP dan ASP.
Sedangkan client side scripting adalah jenis bahasa pemrograman yang kode sumbernya dapat dilihat oleh pengguna. Contohnya adalah HTML, CSS, Dan JavaScript. Dengan adanya bahasa program yang menangani sebuah halaman web, konten dari halaman web itu sentiri semakin bervariasi. Dan pemanfaatannya pun tidak hanya sekedar menampilkan profil usaha atau halaman web statis saja, namun dapat berupa sistem forum, media untuk berkomunikasi, dan media informasi.
Website ini dijalankan oleh satu atau lebih server, dimana server membutuhkan suatu sistem informasi yang kuat dan handal dalam berbagai hal. Program untuk membangun web server saat ini sangatlah banyak diantaranya apache, nginx, dan litespeed. Masing-masing dari program tersebut memiliki karakter masing-masing.
Misalkan apache yang terkenal dengan kekayaan akan fiturnya seperti .httaccess, SSL, HTTP/2, PHP, dan masih banyak lagi. Untuk nginx terkenal dengan kecepatan menyajikan data, stabil, serta mudah dikonfigurasikan. Sedangkan litespeed yang lebih cepat mengolah PHP dan keamanannya lebih baik dari web server lainnya.
Berdasarkan survei yang dilakukan oleh Netcraft pada bulan Desember 2020, Nginx, Apache HTTP server, microsoft, dan google adalah jajaran web server berbasis open source yang paling banyak digunakan. Untuk lebih jelasnya dapat dilihat pada gambar 1.1 dan tabel 1.1 dibawah ini.
Gambar 1.1 Survei Web Server Netcraft (2020)
Bagi para pengguna web server berbasis open source Nginx dan Apache HTTP adalah web server yang selalu menjadi pilihan utama. Namun selain kedua web server tersebut ada juga web server berbasis open source alternatif yang tidak jarang menjadi pilihan yaitu Litespeed. Dilihat dari survei Netcraft web server ini memang tergolong memiliki pasar penggunaan yang kecil, tetapi dengan segala fitur yang ditawarkan, Litespeed tetap menjadi salah satu pilihan bagi pengguna web server berbasis open source.
Tabel 1.1 Survei Web Server Netcraft (2020)
Developer November 2020 Percent Desember 2020 Percent Change Nginx 414,338,895 33.69% 411,191,213 33.48% -0.21 Apache 329,384,399 26.78% 332,420,092 27.07% 0.29 Microsoft 97,283,716 7.91% 97,532,495 7.94% 0.03
Google 45,597,737 3.71% 46,924,883 3.82% 0.11
Apache HTTP, Nginx, dan Litespeed dikembangkan dengan fitur dan keunggulan masing-masing. Oleh karena itu untuk mengetahui kinerja dari masing-
masing web server tersebut perlu dilakukan serangkaian uji performa. Salah satunya adalah menggunakan metode Stress Test. Hal ini diperkuat oleh (Ahdan, 2015) yang mengungkapkan bahwa Stress Testing adalah suatu proses penentuan kemampuan komputer, jaringan, program atau perangkat untuk mempertahankan tingkat efektivitas tertentu dalam kondisi yang tidak menguntungkan.
1.2 Identifikasi Masalah
Berdasarkan uraian dari latar belakang masalah diatas maka dapat diidentifikasi permasalahan yang terjadi sebagai berikut :
1. Kurangnya infomasi web server yang tahan dengan beban permintaan yang besar meliputi banyaknya jumlah users yang mengakses web server tersebut.
2. Adanya kekurangan kinerja pada setiap web server sehingga dilakukan perbandingan kinerja web server Apache, Nginx, dan Openlitespeed dengan metode stress test dengan menggunakan aplikasi Apache JMeter.
3. Adanya kelemahan pada setiap web server maka dilakukan pengujian keamanan enkripsi data yang terjadi antara client dan server dari web server Apache, Nginx, dan Litespeed dengan menggunakan aplikasi Wireshark.
1.3 Rumusan Masalah
Adapun rumusan masalah pada penelitian ini adalah sebagai berikut : 1. Bagaimana tahapan merancang web server yang baik dan benar ?
2. Bagaimana melakukan performa testing pada web server Apache, Nginx, dan Litespeed ?
3. Bagaimana menguji web server Apache, Nginx, dan Litespeed terhadap beban permintaan yang banyak ?
4. Bagaimana menguji sistem keamanan web server Apache, Nginx, dan Litespeed terhadap ancaman peretasan atau pun pembobolan ?
5. Bagaimana perbandingan kinerja masing-masing web server dengan metode stress test ?
1.4 Batasan Masalah
Batasan masalah pada penelitian ini mencakup : 1. Aplikasi yang digunakan adalah Apache JMETER.
2. Parameter yang diukur dalam pengujian ini adalah response time, throughput, RAM usage, CPU usage, Sent, Received, Error, Log, dan Web Security.
3. Pengujian log dilakukan dengan melihat file access.log pada ketiga web server.
4. Web server yang digunakan adalah Apache, Nginx, dan Litespeed.
5. Pengujian Web security menggunakan Wireshark.
1.5 Tujuan dan Manfaat Penelitian
Secara umum tujuan dan manfaat penelitian ini adalah sebagai berikut : 1.5.1 Tujuan Penelitian
Penelitian ini bertujuan untuk mengetahui dan memberikan informasi tentang kinerja web server Apache, Nginx dan Litespeed, dimana parameter yang diuji tersebut merupakan acuan yang relevan untuk mengetahui kinerja dari ketiga web server tersebut. Semakin kecil nilai pengujian dari parameter tersebut maka semakin bagus nilai kinerjanya.
1.5.2 Manfaat Penelitian
1. Memudahkan pengelola layanan dalam memilih layanan server yang tepat karena telah mengetahui kekurangan dan kelebihan masing-masing server.
2. Mampu menganalisa dan mengimplementasikan kebutuhan web server yang sesuai dengan kebutuhan dan stabil dalam penggunaan.
7
BAB II
LANDASAN TEORI
2.1 Tinjauan Pustaka
Untuk menyusun proposal penelitian ini penulis juga melakukan studi kepustakaan yang merujuk kepada penelitian-penelitian sebelumnya yang berkaitan dengan penelitian yang penulis buat. Studi kepustakaan ini dilakukan sebagai bahan perbandingan dan referensi bagi penulis.
Andhica & Irwan, (2017) melakukan penelitian yang berjudul “Performa Kinerja web server Berbasis Ubuntu Linux Dan Turnkey Linux”. Pada penelitian tersebut menguji kinerja web server berdasarkan kemampuannya dari request route, reply time, dan throughput dengan menggunakan aplikasi Httperf untuk melihat reply time dan throughput masing-masing web server.
Irza et al., (2017) melakukan penelitian yang berjudul “Analisis Perbandingan Kinerja web server Apache Dan Nginx Menggunakan Httperf Pada Portal Berita (Studi Kasus beritalinux.com)”. Pada penelitian tersebut menguji kinerja web server berdasarkan kemampuannya dari connection section (time), request, reply section, dan error dengan menggunakan aplikasi Httperf dan Siege. Hasil pengujian dari web server Apache dan Nginx dengan beban yang diberikan 100, 500 dan 1000 user dilakukan untuk melihat perbandingan kinerja dari kedua perangkat lunak yang nantinya dijadikan sebagai bahan pertimbangan untuk pengimplementasian pada portal berita oleh admin dari portal berita beritalinux.com.
Chandra, (2019) melakukan penelitian yang berjudul “Analisis Performasi Antara Apache dan Nginx Web Server Dalam Menangani Client Request”. Pada
penelitian tersebut menguji kinerja web server berdasarkan kemampuannya dalam menangani client request dengan menggunakan aplikasi Apache Bench dengan beban mulai dari 100 user hingga 1.000.000 user. Hasil pengujian dari web server Apache dan Nginx ini diharapkan dapat memberikan masukan sebagai pilihan web server mana yang akan digunakan nantinya dalam membangun sebuah website yang akan digunakan jika website tersebut akan menangani banyaknya client request.
Busran & Ridwan, (2020) melakukan penelitian yang berjudul “Analisis Perbandingan Performa Apache Web Server Dan Nginx Menggunakan Apache JMeter”. Pada penelitan tersebut menguji kinerja web server berdasarkan respon time dan throughput dalam menangani request yang diminta oleh client dengan menggunakan aplikasi Apache JMeter dengan beban permintaan 100, 1000 dan 10000 user. Hasil pengujian dari web server Apache dan Nginx dapat disimpulkan bahwa Nginx lebih efisien waktu atau lebih cepat dalam melakukan respon terhadap client dari Apache.
Satwika & Semadi, (2020) melakukan penelitian yang berjudul
“Perbandingan Performasi Web Server Apache dan Nginx Dengan Menggunakan Ipv6”. Pada penelitian tersebut menguji kinerja web server berdasarkan time taken for tests, request per second, transfer rate (Kb/s), time per request (ms), memory usage, dan load maximum dengan menggunakan aplikasi Apache Benchmarking.
Hasil pengujian dari web server Apache dan Nginx didapatkan hasil bahwa Nginx memiliki performasi lebih baik dibandingkan dengan Apache berdasarkan dari parameter yang diukur pada masing-masing web server tersebut.
Riswandi et al., (2020) melakukan penelitian yang berjudul “Evaluasi Kinerja Web Server Apache Menggunakan Protokol HTTP2”. Pada penelitian tersebut menguji kinerja web server berdasarkan respons time dalam menangani protokol HTTP/1 dan HTTP/2 dengan menggunakan aplikasi Apache JMeter. Hasil pengujian dari web server Apache dan Nginx didapatkan respons time dari HTTP/2 lebih cepat jika diterapkan didalam web server Nginx daripada menggunakan web server Apache.
2.2 Dasar Teori
Berikut ini adalah beberapa dasar teori yang berkatian dalam penelitian skripsi tugas akhir ini :
2.2.1 Perancangan Jaringan
Dibawah ini adalah gambar topologi jaringan web server yang sering digunakan oleh client.
Gambar 2.1 Perancangan Jaringan
Pada gambar 2.1 diatas adalah contoh rancangan jaringan web server yang biasa digunakan untuk interaksi antara client dan server melalui internet. Hal pertama yang dilakukan client jika ingin mengakses sebuah web server baik itu
apache, nginx, ataupun litespeed yaitu melalui sebuah router yang akan terhubung dengan internet. Dari router inilah client dapat meminta atau yang disebut dengan request kepada web server untuk mengakses sebuah website. Kemudian server akan membalas atau me-reply permintaan client untuk dapat mengakses sebuah website yang sudah diminta oleh client.
2.2.2 Web Server
Web server adalah software yang memberikan layanan data yang mempunyai fungsi untuk menerima permintaan HTTP (HyperText Transfer Protocol) atau HTTPS yang dikirim oleh klien melalui web browser dan mengirimkan kembali hasilnya dalam bentuk halaman web yang umumnya berbentuk dokumen HTML (HyperText Markup Language). Web server berguna sebagai tempat aplikasi web dan sebagai penerima request dari client Indra Warman & Zahni, (2013).
Saat mengambil halaman website, browser mengirimkan permintaan ke server yang kemudian diproses oleh web server. HTTP request dikirimkan ke web server. Sebelum memproses HTTP request, web server juga melakukan pengecekan terhadap keamanan. Pada web server, HTTP request diproses dengan bantuan HTTP server. HTTP server merupakan perangkat lunak yang bertugas menerjemahkan URL (alamat situs website) serta HTTP (protokol yang digunakan browser untuk menampilkan halaman website). Kemudian web server mengirimkan HTTP response ke browser dan memprosesnya menjadi halaman situs website.
2.2.3 Apache
Apache adalah Open source yang dibangun dan dikelola oleh Apache.org.
Apache terdiri dari dua blok bangunan utama dengan bangunan akhir yang terdiri
dari banyak blok bangunan kecil lainnya. Blok Bangunan adalah Apache Core dan kemudian Modul Apache yang dalam arti memperluas inti Apache Irza et al., (2017).
Apache HTTP dikembangkan oleh Apache Software Foundation sebagai usaha untuk membangun server HTTP open source yang dapat digunakan untuk sistem operasi modern seperti UNIX dan Windows. Tujuannya adalah memberikan sebuah keamanan, efisien, dan ekstensibilitas bagi pengembang aplikasi, dan kompatibel dengan standar baku HTTP. Saat ini. Proyek ini pertama kali diluncurkan pada tahun 1995, dan menjadi yang terpopuler sejak April 1996.
Apache HTTP fleksibel terhadap berbagai sistem operasi seperti Windows 9x/NT/2000/XP/Vista ataupun Unix dan Linux. Apache merupakan turunan dari web server yang dikeluarkan oleh NCSA yaitu NCSA HTTPd.
2.2.4 Nginx
Nginx atau biasa disebut “Engine-x”, adalah open source web server. Nginx dibuat oleh Igor Sysoev dan dirilis ke publik pada bulan Oktober 2004. Nginx menawarkan penggunaan memori yang lebih rendah dibandingkan web server lainnya dan juga beberapa fitur seperti: reverse proxy, IPv6, load balancing, FastCGI support, web sockets, handling static files, TLS/SSL. Nginx selain digunakan sebagai web server juga memiliki fitur untuk digunakan sebagai reverse proxy, HTTP cache, dan load balancer.
Nginx didirikan atas dasar event-base architecture (EBA). Komponen berinteraksi secara khusus dengan menggunakan event notification, bukan metode panggilan langsung. Event Notification ini terjadi dari tugas yang berbeda.
Kemudian diantrikan untuk diproses oleh event handler (pengendali event). Event Handler berjalan secara berulang, ketika event tersebut diproses, kemudian dikeluarkan dari antrian dan kemudian dilanjutkan ke proses selanjutnya.
2.2.5 Litespeed
Litespeed merupakan teknologi web server yang dapat mempercepat akses server 50 kali lebih cepat dibandingkan dengan server biasanya. Teknologi Litespeed ini dibuat oleh LiteSpeed Technologies menawarkan performa tinggi, cepat, ringan, stabil, dan handal dalam menangani pekerjaan yang berskala besar.
Technologies, n.d. (2021).
Litespeed mempunyai beberapa fitur seperti kompatible dengan apache, lebih cepat, server lebih stabil dalam 15 menit, satu-satunya kontrol solusi panel terintegrasi, dukungan HTTP/2, dan anti dDOS advances. Dengan beberapa fiturnya Litespeed sudah jauh lebih unggul dari pada Apache. Berikut adalah beberapa detail kelebihan dari Litespeed :
1. Performa PHP mampu meningkat 50%.
2. Mampu melebihi performa apache hingga 6 kali lebih cepat.
3. Pembatasan validasi HTTP request.
4. Anti DDOS.
5. Pencegahan sistem overloading.
6. Recover dari kegagalan secara langsung otomatis.
7. Kompatible dengan Cpanel, plesk, dan direct admin.
8. Dukungan kompabilitas dengan mod_security request filtering.
9. Kompatible dengan apache .htaccess.
2.2.6 Perbandingan Web Server Apache, Nginx dan Litespeed
Berikut perbandingan antara web server Apache, Nginx dan Litespeed dapat dilihat pada tabel 2.1 dibawah ini :
Tabel 2.1 Perbandingan Web Server
Kelebihan Kekurangan
Apache Kompatibel dengan
menggunakan WordPress.
Lintas platform.
Adanya komunitas besar serta dokumentasinya lengkap.
Menggunakan lisensi yang
gratis dengan sifatnya open source.
Memiliki perangkat lunak yang andal serta stabil.
Konfigurasinya mudah dan tidak ribet.
Patch berkaitan dengan keamaan selalu diperbaharui.
Keamanannya rentan sebab beberapa konfigurasi tidak ikut dikembangkan secara bagus dan baik.
Kalau menerima berbagai trafik
yang tinggi, akan muncul gangguan atau masalah berkaitan dengan performa di website tersebut.
Nginx Mempunyai ketangguhan dalam menangani sebuah trafik yang tinggi.
Update yang cukup lama di banding web server lainnya.
Fast CGI yang tidak berfungsi sempurna.
Mempunyai skalabilitas yang baik.
Bisa mengganti Hardware
Load Balancer.
Mempunyai tool yang multifungsi.
Tersedia berbagai macam dokumentasi lengkap.
Kadang kala ada masalah pada
.htaccess namun hal ini tergantung dari konfigurasi web masternya sentiri.
Pemakai tidak sebanyak Apache / IIS.
Litespeed Memiliki Akses Loading Time lebih cepat 6x dari apache.
Support .htaccess sehingga
string cache akan otomatic tercreate dengan sempurna.
Compatible dengan
mod_security dan
mod_rewite.
Meminimalisir Overload Server yang di karenakan terlalu minimnya spesifikasi server.
Proses PHP 50% lebih cepat
Harga untuk implementasi yang cukup mahal.
Beberapa mod dan aplikasi tidak semuanya dapat ditransisi dari web server lainnya.
Litespeed Web Server mampu menahan Serangan DDOS attack.
2.2.7 Netcraft
Netcraft adalah perusahaan jasa internet yang berbasis di Bath, Inggris.
Netcraft Menyediakan data penelitian dan analisis terhadap berbagai aspek internet.
Netcraft telah menjelajahi internet sejak tahun 1994 dan memiliki kewenangan pada market share dari web server, sistem operasi, hosting providers, ISP, transaksi terenkripsi, bisnis secara elektronik, bahasa-bahasa scripting dan teknologi konten di Internet. Netcraft.com, n.d. (2021).
2.2.8 Stress Testing
Testing atau ujicoba, adalah proses menjalankan sebuah aplikasi dengan tujuan menemukan sebuah permasalahan. Performance testing dilakukan dengan cara melakukan permintaan dalam jumlah besar, seperti mengakses sistem dengan banyak user dalam waktu bersamaan. Performace testing sentiri memiliki tujuan untuk mengevaluasi kemampuan dari suatu sistem dalam menangani sebuah permintaan atau request.
Stress testing adalah bagian dari Performance testing yang fokus untuk mengetes kekuatan, ketersediaan dan keandalan dari suatu aplikasi dalam kondisi yang ekstrim. Kondisi ekstrim tersebut di antaranya heavy loads, high concurrency, atau limited computational resources. Stress testing yang baik juga membantu dalam menemukan bug terkait sinkronisasi, interlock problems, priority problems,
dan resource loss bugs. Stress Testing dilakukan untuk memastikan bahwa sistem tidak akan crash di bawah situasi krisis. Penggunaan stress testing yang paling menonjol adalah untuk menentukan batas, di mana sistem atau perangkat lunak atau perangkat keras rusak. Ini juga memeriksa apakah sistem menunjukkan manajemen kesalahan yang efektif dalam kondisi ekstrim. Adapun tujuan dari stress testing dan performance testing pada umumnya adalah mengetahui response time atau latency, troughput, utilisasi sumberdaya, dan workload. Sharmila & Ramadevi, (2014).
Secara umum ada 7 (Tujuh) langkah-langkah untuk menentukan stress testing yaitu bisa dilihat pada gambar 2.2 dibawah ini :
Gambar 2.2 Langkah-langkah stress testing Langkah 1 — Identifikasi test objectives.
Identifikasi tujuan dari Stress Testing kita dalam hal apa yang akan menjadi hasil dari test kita. Identifikasi ini bisa dibuat dengan membuat daftar pertanyaan pertanyaan yang membantu kita untuk membuat outcome yg diinginkan dari stress testing yang dilakukan. Contoh pertanyaan yang bisa diajukan diantaranya :
1. Bagaimana menguji web server apache, nginx, dan litespeed terhadap beban permintaan yang banyak ?
Langkah 2 — Identifikasi key scenario(s).
Identifikasi application scenario atau case yang akan dilakukan stress testing untuk diidentifikasi problem potensial. Untuk mendapatkan hasil yang terbaik dari stress test, test harus fokus pada skenario yang mencakup keseluruhan kesuksesan dari aplikasi. Untuk mendapatkan skenario yang baik, ada beberapa guideline yang bisa membantu kita, yaitu sebagai berikut :
1. Coba untuk melakukan skenario yang mempengaruhi performa aplikasi.
Biasanya skenario seperti intensive locking and synchronization, long transactions, and disk-intensive input/output (I/O) operations.
Langkah 3 — Identifikasi workload.
Identifikasi workload adalah kita menganalisa seberapa jauh dan handal web server dalam menangani permintaan yang melebihi batas, sehingga kita dapat mencari dan menemukan solusi dalam pengujian yang akan dilakukan nanti.
Langkah 4 — Identifikasi metrik.
Identifikasi ukuran/metrik yang akan dikumpulkan terkait performa dari aplikasi. Sebagai contoh kita mengumpulkan informasi dari ketiga web server tersebut seberapa besar pemakaian RAM (Random Access Memory) dan CPU (Cetral Processing Unit) dalam melayani permintaan yang melebihi batas bisa dilihat pada tabel 2.2 dibawah ini.
Tabel 2.2 Ukuran metriks
Performance Metrics Category
Base Set of Metrics -
Processor Processor utilization
Process Memory comsumtion
Processor utilization
Process recycles
Memory Memory available
Memory utilization
Disk Disk utilization
Network Network utilization
Transaction/Business Metrics Transactions/sec
Transactions successed
Transactions failed
Order successed
Order failed
Threading Contentions per second
Deadlocks
Thread allocation Response Time Transactions times
Langkah 5 — Membuat test cases.
Buat test cases yang di-define untuk melakukan single test sertakan juga hasil yang kita ekspektasikan. Workload dan scenario key umumnya tidak dapat menyediakan semua informasi yang dibutuhkan untuk implementasi dan eksekusi test cases. Dibutuhkan juga test design untuk stress test yaitu performance objectives, workload characteristics, test data, test environments, dan identified metrics. Test design akan memberikan hasil terkait expected results.
Langkah 6 — Simulasikan load.
Gunakan test tools untuk simulasi required load untuk tiap test case dan catat hasil dari metric data. Test execution mengikuti langkah langkah berikut : - Validasi bahwa test environment sesuai dengan konfigurasi yang diekspektasi/didesain.
- Pastikan bahwa test dan test environment terkonfigurasi untuk metrics collection.
- Lakukan “smoke test” sebelum menjalankan stress test untuk memastikan test script bekerja dengan baik.
- Reset system dan mulai lakukan test.
Langkah 7 — Analisa hasil.
Analisa hasil dari metric dari yang kita catat lalu bandingkan dengan metric’s accepted level. Jika hasil mengindikasikan bahwa performance level yang diminta belum tercapai, lakukan analisa dan perbaiki issue. Melakukan design review dan code review dapat mempermudah dalam perbaikan issue tersebut.
2.2.9 Pengujian Kinerja
Web Performance Test adalah serangkaian proses pengujian untuk mengukur kinerja perangkat lunak aplikasi web server Guntoro et al., (2015).
Dalam rekayasa perangkat lunak web performance testing adalah suatu pengujian yang dilakukan untuk menentukan bagaimana sistem melakukan respon dan stabilitas dibawah beban kerja tertentu (degradasi kerja), sehingga dengan melakukan pengujian akan dihasilkan data yang dapat dipakai untuk menyelidiki, mengukur, memvalidasi atau memverifikasi dari atribut kualitas sistem tersebut.
Dengan web performance testing dapat dengan mudah membangun sebuah kerangka kerja test untuk dilakukan secara berulang yang dapat membantu dalam menganalisis kerja aplikasi website dan mengidentifikasi hambatan potensial. Ada beberapa parameter yang diukur dalam sebuah pengujian kinerja web server yaitu : 1. Throughput, adalah jumlah bit atau data yang diterima dengan sukses perdetik melalui sebuah sistem atau media komunikasi dalam selang waktu pengamatan tertentu. Aspek utama throughput yaitu berkisar pada ketersediaan bandwidth yang cukup untuk menjalankan aplikasi. Hal ini menentukan besarnya trafik yang dapat diperoleh suatu aplikasi saat melewati jaringan, oleh sebab itu semakin besar throughput yg dihasilkan akan semakin baik. Adnan, (2017).
2. CPU Usage, adalah grafik yang menunjukkan angka sumber daya yang dibutuhkan sebuah Prosessor dalam Central Processing Unit (CPU) dalam bekerja menangani proses. Semakin kecil CPU usage semakin kecil juga kemungkinan sebuah server untuk overload task, server yang tidak
mengalami overload berarti dalam kondisi yang optimal dan baik. Satuan CPU usage ditampilkan dalam persen. Adnan, (2017).
3. RAM Usage, adalah grafik yang menunjukkan angka sumber daya yang dibutuhkan sebuah Random Access Memory (RAM) dalam bekerja menangani proses. Semakin kecil RAM usage semakin kecil juga kemungkinan sebuah server untuk overload task, server yang tidak mengalami overload berarti dalam kondisi yang optimal dan baik Satuan RAM usage ditampilkan dalam persen. Adnan, (2017).
4. Connection, adalah hubungan antara server ke client dan client ke server.
Jika semakin kecil connection yang ditujukan maka sebakin bagus kinerja dari suatu server.
5. Sent, adalah jumlah data yang dikirim dari server menuju client selama pengujian kinerja.
6. Received, adalah jumlah data yang diterima dari client ke server selama pengujian kinerja berlangsung.
7. Error, adalah kesalahan saat client mengakses halaman web ataupun saat server mengirimkan reply ke client.
8. Log, adalah suatu file yang berisi data atau pun informasi mengenai daftar tindakan, kejadian, dan aktifitas yang telah terjadi di dalam suatu sistem.
9. Web Security, adalah keamanan untuk sebuah web atau tata cara mengamankan aplikasi web yang dikelola, biasanya yang bertanggung jawab adalah pengelola aplikasi web tersebut.
22
BAB III
METODOLOGI PENELITIAN
Metodologi penelitian adalah tata cara atau perancangan perencanaan dengan bantuan teknik, alat (tools), dan beberapa metode serta didokumentasikan dengan maksud dan tujuan untuk membantu peneliti dalam meminimalisir resiko kegagalan dalam penelitian tersebut untuk menekankan pada proses saat penelitian tersebut berlangsung.
3.1 Definisi Masalah dan Analisis
Pada penelitian ini terdapat beberapa masalah mengenai layanan web server yaitu :
1. Kurangnya infomasi web server yang tahan dengan beban permintaan yang besar meliputi banyaknya jumlah users yang mengakses web server tersebut.
2. Adanya kekurangan kinerja pada setiap web server sehingga dilakukan perbandingan kinerja web server Apache, Nginx, dan Openlitespeed dengan metode stress test dengan menggunakan aplikasi Apache JMeter.
3. Adanya kelemahan pada setiap web server maka dilakukan pengujian keamanan enkripsi data yang terjadi antara client dan server dari web server Apache, Nginx, dan Litespeed dengan menggunakan aplikasi Wireshark.
Dari beberapa permasalahan diatas akan dilakukan pengujian pada tiap-tiap web server. Untuk parameter yang akan diuji ada beberapa parameter, yaitu response time, throughtput, RAM Usage, CPU Usage, Sent, Received, Error, Log, dan Web Security.
3.2 Alat dan Bahan Penelitian
Adapun spesifikasi perangkat keras (hardware) yang digunakan untuk melakukan pengujian dan spesifikasi perangkat lunak (software) yang dibutuhkan untuk sistem yang akan dibangun adalah sebagai berikut :
3.2.1 Perangkat Keras (Hardware)
Spesifikasi perangkat keras (hardware) yang dibutuhkan sebagai server atau pc yang akan digunakan dalam penelitian ini adalah sebagai berikut :
1. PC Server / Client
a. Processor Intel Pentium Inside
b. RAM (Random Access Memory) 3 GB (GigaByte) c. Harddisk dengan kapasitas 500 GB (GigaByte) d. Type Operating System 64-Bit
2. Perangkat Jaringan (Network)
a. Kabel UTP (Unshielded Twisted Pair) 4 buah untuk menghubungkan antar PC (Personal Computer) client dan PC (Personal Computer) server.
b. 1 buah switch untuk menghubungan antara client dengan server.
3.2.2 Perangkat Lunak (Software)
Perangkat lunak (Software) yang digunakan dalam pembuatan pengujian kinerja ini sebagai berikut :
1. Ubuntu Server versi 16.04 2. Windows 8.1 x64 bit 3. Apache Jmeter
4. Wireshark
5. Web Server Apache 6. Web Server Nginx 7. Web Server Litespeed 3.3 Prosedur Penelitian
Pada gambar 3.1 digambarkan Dalam proses pengumpulan data untuk mendapatkan data yang benar dan meyakinkan agar hasil dari penelitian tidak menyimpang dari tujuan yang sudah diterapkan sebelumnya, penulis melakukan langkah-langkah sebagai berikut :
Gambar 3.1 Skema Prosedur Penelitian 1. Analisis
Didalam tahapan ini akan dirancang sebuah proses pengiriman data atau halaman website dari server menuju client, sehingga dapat diketahui parameter-parameter antara lain : response time, throughput, RAM usage,
Analisis Parameter
Perancangan
Pengujian
Dokumentasi
CPU usage, Sent, Received, Error, Log, dan Web Security sehingga kesimpulan akan diambil dari hasil perbandingan yang sudah diperoleh.
2. Perancangan
Dalam tahap ini akan dirancang analisa spesifikasi kebutuhan yang telah di dapat kedalam bentuk arsitektural perangkat lunak, untuk diimplementasikan kepada aplikasi yang akan dibuat.
3. Pengujian
Dalam tahap ini dilakukan pengujian kinerja web server Apache, Nginx dan Litespeed dengan menggunakan aplikasi Apache JMeter serta dengan menambahkan metode stress testing untuk mendapatkan hasil dari pengujian yang sedang berjalan. Dan untuk melakukan pengujian keamanan web penulis menggunakan tools Wireshark Network Monitoring untuk melihat dan membandingkan tingkat keamanan dari ketiga web server tersebut.
4. Dokumentasi
Pada proses dokumentasi, penulis juga melakukan studi pustaka, membaca dan mempelajari dokumen-dokumen, buku-buku acuan, serta sumber lainnya yang berkaitan dengan penelitian untuk dijadikan referensi.
3.4 Pengembangan dan Perancangan Sistem
Proses pengujian kinerja ini akan menggunakan jaringan LAN (Local Area Network) sederhana dengan memakai 1 switch berjumlah 5 port untuk mensimulasikan komunikasi antara server dengan client dimana server dan client terhubung pada satu jaringan yang sama. Pada gambar 3.2 adalah topologi yang akan digunakan pada saat pengujian.
Gambar 3.2 Topologi Jaringan 3.5 Skenario Pengujian
Analisa perbandingan kinerja web server Apache, Nginx, dan Litespeed menggunakan software Apache JMeter dengan menggunakan metode stress test.
Pengujian kinerja ini melalui beberapa tahapan-tahapan yang akan dijadikan sebagai prosedur penelitian penulis. Adapun tahapan-tahapan prosedur penelitian yang akan digambarkan dapat dilihat dibawah ini :
1. Skema Rancangan Tahapan Pengujian
Pada gambar 3.3 Pengukuran dilakukan dengan mengambil nilai rata-rata dari masing-masing pengujian yang dilakukan pada halaman web statis, gambar, dan wordpress beserta dengan beban yang diberikan yaitu 700, 900, dan 1100 request berdasarkan penelitian yang dilakukan oleh Chandra, (2019).
Gambar 3.3 Skema Tahap Penelitian 2. Skema Rancangan Alur Pengujian Web Server
Gambar 3.4 dibawah ini telah dijelaskan alur skema pengujian web server.
Setelah booting dari sistem operasi, tahapan selanjutnya adalah instalasi web server dan perangkat lunak pendukungnya. Kemudian tahapan selanjutnya adalah tahapan instalasi aplikasi Apache JMeter pada client serta menjalakan metode stress test. Setelah itu tahapan selanjutnya adalah pengujian web statis, pengujian gambar, pengujian wordpress dan pengujian keamanan dari masing- masing web server. Tahapan terakhir yaitu mengambil kesimpulan dari semua hasil pengujian untuk mendapatkan perbandingan dari masing-masing web server.
Start
Analisa kebutuhan
Install SO Ubuntu Server 16.04
Perancangan Apache W eb Server
Perancangan Nginx W eb Server
Perancangan Litespeed W eb
Server
Booting W eb Server
Jalankan Aplikasi Apache JMeter Pada Client
Jalankan Metode Stress Test
Request 700
Request 900
Pengukuran dan Analisa Hasil Pengujian
Finish Request 1100
Gambar 3.4 Skema Pengujian Web Server 3. Skema Pengujian Keamanan
Pada gambar 3.5 dijelaskan bahwa untuk menguji keamanan dari ketiga web server tersebut dimulai dari start running web server Apache, Nginx dan Litespeed kemudian jalankan aplikasi Wireshark di client untuk melakukan pengujian agar hasil yang didapat bisa dijadikan referensi untuk pemilihan web server yang sesuai dengan kebutuhan.
Start
Booting Ubuntu 16.04 Server
Instalasi W eb Server Apache Nginx dan Litespeed
Apache Nginx Litespeed
Jalankan Apache JMeter
Jalankan Metode Stress Test
Pengujian W eb Statis
Pengujian PHP
Pengujian Gambar
Pengujian W ordpress
Pengujian Keamanan
Finish Kesimpulan
Gambar 3.5 Skema Pengujian Keamanan 3.5.1 Dokumen Pengujian
Adapun beberapa dokumen pengujian yang digunakan pada penelitian ini sebagai bahan perbandingan untuk mendapatkan hasil antara lain sebagai berikut :
A. Web Statis
Pengujian pada web statis dilakukan untuk mengetahui kinerja web server terhadap halaman yang berisikan tulisan atau teks, gambar, hingga halaman yang lebih kompleks.
B. Pengujian PHP
Pengujian file PHP dilakukan untuk mengetahui kinerja web server dalam menangani halaman web yang dibuat menggunakan PHP.
C. Pengujian Gambar
Pengujian terhadap file berbentuk gambar dilakukan untuk melihat kinerja web server terhadap permintaan file gambar.
D. Pengujian Wordpress
Start
Apache Nginx Litespeed
Jalankan Aplikasi Wireshark
Pengumpulan Hasil
Finish
Pengujian ini dilakukan untuk melihat kinerja web server terhadap halaman web yang kompleks.
3.6 Parameter Kinerja
Parameter kinerja adalah proses penilaian terhadap pengukuran suatu pekerjaan tentang tujuan dan sasaran yang sudah ditetapkan sebelumnya. Hasil dari kegiatan ini dibandingkan dengan maksud yang diinginkan, dan efektivitas tindakan dalam mencapai suatu tujuan. Parameter yang digunakan dalam pengujian ini meliputi : response time, throughtput, RAM Usage, CPU Usage, Sent, Received, Error, Log, dan Web Security. Berikut penjelasan dari parameter yang sudah disebutkan diatas adalah :
1. Response Time adalah waktu tanggap yg diberikan oleh antar muka / interface ketika user me-request / mengirim permintaaan ke komputer. Atau perbedaan antara waktu ketika permintaan dikirim dan waktu ketika respon telah diterima sepenuhnya.
2. Throughput adalah kecepatan (rute) transfer data efektif yang diukur dalam bps. Throughput merupakan jumlah total kedatangan paket yang sukses dan diamati pada destination selama interval waktu tertentu dibagi oleh durasi interval waktu tersebut.
3. RAM Usage adalah adalah penggunan tempat penyimpanan sementara pada server. Semakin besar RAM maka maka website semakin cepat diakses dan memproses banyak request dari pengunjung dan juga bisa menerima traffic yang tinggi.
4. CPU Usage adalah core utama untuk menerima instruksi dan melakukan tindakan berdasarkan perintah dari pengguna website (client). Semakin besar core pada server maka semakin cepat pula instruksi dikerjakan.
5. Sent adalah jumlah data yang dikirim dari server menuju client saat pengujian berlangsung. Semakin kecil nilainya maka hasilnya akan semakin baik.
6. Received adalah jumlah data yang diterima dari client menuju server saat pengujian berlangsung. Semakin kecil semakin baik nilai nya.
7. Error adalah kesalahan saat client mengakses halaman web atau pun saat server mengirimkan reply ke client, jika semakin besar error pada sebuah server maka semakin buruk pula kinerja suatu web server.
8. Log adalah suatu file yang berisi data atau informasi mengenai daftar tindakan, kejadian, dan aktivitas yang telah terjadi di dalam suatu sistem.
Informasi tersebut akan berguna apabila sistem mengalami kegagalan sehingga akan dapat dicari penyebabnya berdasarkan log file yang terdapat pada sistem tersebut.
9. Web Security adalah pegujian yang dilakukan untuk mengetahui tingkat keamanan web server. Pengujian dilakukan untuk masuk ke server dan mengakses server. Juga melakukan monitoring jaringan menggunakan wireshark untuk melihat lalu lintas jaringan pada koneksi server dengan client.
𝐸𝑟𝑟𝑜𝑟 𝑐𝑜𝑛𝑛𝑒𝑐𝑡𝑖𝑜𝑛 𝑐𝑙𝑖𝑒𝑛𝑡=𝑑𝑒𝑚𝑎𝑛𝑑 𝑟𝑒𝑞𝑢𝑒𝑠𝑡−𝑟𝑒𝑝𝑙𝑖𝑒𝑑 𝑟𝑒𝑞𝑢𝑒𝑠𝑡
32
BAB IV
HASIL DAN PEMBAHASAN
Sebelum melakukan pengujian dari web server Apache, Nginx dan Openlitespeed, kita harus menginstall web server tersebut ke masing-masing laptop yang akan kita jadikan bahan penelitian beserta aplikasi pendukungnya.
4.1 Installasi Web Server Apache
Langkah awal sebelum melakukan pengujian adalah installasi web server Apache dan aplikasi pendukung seperti mysql-server dan PHP. Dalam melakukan installasi ini menggunakan aplikasi Putty untuk me-remote web server melalui client dan menggunakan aplikasi WinSCP untuk melakukan transfer file kedalam web server. Berikut pada gambar 4.1 adalah langkah awal untuk menginstall web server Apache.
Gambar 4.1 Remote web server Apache dengan Putty
Setelah melakukan remote dengan client, pada gambar 4.2 adalah langkah installasi web server Apache yang kita remote dari client dengan menggunakan aplikasi Putty.
Gambar 4.2 Install web server Apache
MySQL adalah database management system yang menggunakan bahasa SQL (Structured Query Language) sebagai bahasa penghubung antara perangkat lunak aplikasi dengan database server. Instal Mysql-server pada web server Apache bisa dilihat pada gambar 4.3.
Gambar 4.3 Install MYSQL-server di Apache
PHP merupakan bahasa pemrograman server-side, maka script dari PHP nantinya akan diproses di server. Untuk menginstall PHP pada Apache web server bisa dilihat pada gambar 4.4
Gambar 4.4 Install PHP di Apache 4.2 Installasi Web Server Nginx
Setelah selesai installasi web server Apache dan aplikasi pendukung seperti mysql-server dan PHP. Selanjutnya dilakukan installasi lagi untuk web server Nginx di laptop yang berbeda. Dalam melakukan installasi ini menggunakan aplikasi Putty untuk me-remote web server melalui client dan menggunakan aplikasi WinSCP untuk melakukan transfer file kedalam web server. Berikut pada gambar 4.5 adalah langkah awal untuk menginstall web server Nginx.
Gambar 4.5 Remote web server Nginx dengan Putty
Setelah melakukan remote dengan client, pada gambar 4.6 adalah langkah installasi web server Nginx yang kita remote dari client dengan menggunakan aplikasi Putty.
Gambar 4.6 Install web server Nginx
MySQL adalah database management system yang menggunakan bahasa SQL (Structured Query Language) sebagai bahasa penghubung antara perangkat lunak aplikasi dengan database server. Install Mysql-server pada web server Nginx bisa dilihat pada gambar 4.7.
Gambar 4.7 Install MYSQL-server di Nginx
PHP merupakan bahasa pemrograman server-side, maka script dari PHP nantinya akan diproses di server. Untuk menginstall PHP pada Nginx web server bisa dilihat pada gambar 4.8
Gambar 4.8 Install PHP di Nginx
Untuk web server Nginx kita perlu mengkonfigurasi default site agar php dapat berjalan. Kita dapat mengkonfigurasi dengan masuk ke direktori
“/etc/nginx/sites-available/default” dan menambahkan index.php dan menghapus tanda pagar di kalimat tertentu agar php dapat berjalan. Untuk lebih jelasnya silahkan perhatikan dan lihat gambar 4.9 dibawah ini.
Gambar 4.9 Konfigurasi PHP di web server Nginx
4.3 Installasi Web Server Openlitespeed
Setelah selesai installasi web server Nginx dan aplikasi pendukung seperti mysql-server dan PHP. Selanjutnya dilakukan installasi lagi untuk web server Openlitespeed di laptop yang berbeda. Dalam melakukan instalasi ini menggunakan aplikasi Putty untuk me-remote web server melalui client dan menggunakan aplikasi WinSCP untuk melakukan transfer file kedalam web server. Berikut pada gambar 4.10 adalah langkah awal untuk menginstall web server Openlitespeed.
Gambar 4.10 Remote web server Openlitespeed dengan Putty
Setelah melakukan remote dengan client, pada gambar 4.11 dilakukan penambahan repositori didalam web server Openlitespeed dengan perintah “ wget –O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash
” karena Openlitespeed tersedia dari pihak ketiga dan belum ada didalam repositori default ubuntu server.
Gambar 4.11 Menambahkan repo web server Openlitespeed
setelah selesai menambahkan repositori di web server Openlitespeed lakukan instalasi web server Openlitespeed dan tunggu hingga selesai seperti gambar 4.12.
Gambar 4.12 Install web server Openlitespeed
Untuk Openlitespeed menggunakan MariaDB dalam mengelola database.
MariaDB adalah relational database management system (DBMS) open source yang merupakan drop in yang kompatible untuk pengganti MYSQL. Langkah menginstall MariaDB didalam web server Openlitespeed bisa dilihat pada gambar 4.13.
Gambar 4.13 Install MariaDB-server Openlitespeed
Setelah itu rubah username dan password MariaDB-server seperti pada gambar 4.14 dengan mengetikkan perintah “ mysql_secure_installation “ agar dapat diingat dengan mudah.
Gambar 4.14 Seting username dan password mariadb-server
Karena web server Openlitespeed mempunyai web page login admin, maka kita perlu merubah default username dan password seperti pada gambar 4.15 agar mudah mengakses web page login admin tersebut dengan mengetikkan perintah “ /usr/local/lsws/admin/misc/admpass.sh “.
Gambar 4.15 Merubah default username dan password Openlitespeed Setelah masuk ke web page admin web server, rubah port default dari web server Openlitespeed dari 8088 menjadi 80 seperti pada gambar 4.16 agar dapat langsung mengakses halaman web server dengan ip address kita. Seting port yaitu masuk ke menu “ Listener > Default > Edit > Port : 8088 menjadi 80 > Save “.
Gambar 4.16 Merubah port Openlitespeed
Kemudian konfigurasi php agar dapat digunakan di web server Openlitespeed seperti gambar 4.17 dengan cara masuk ke menu “ Virtual Hosts >
Example > Edit > General > Index Files > Edit > Save“.
Didalam edit index files sesuaikan untuk “name : lsphp”, “address : uds://tmp/lshttpd/lsphp.dock”, “max connection : 35”, “initial request timeout : 60”, “retry timeout : 0”, “persistent connection : yes”, “response buffering : no”,
“start by server ; yes (Trough CGI Daemon)”, “command : $server_root/fcgi- bin/lsphp”, “back log : 100”, “instances : 1”, “priority : 0”, “memory soft limit : 2047M”, “memory hard limit : 2047M”, “process soft limit : 1400” dan “process hard limit : 1500”.
Gambar 4.17 Konfigurasi PHP Openlitespeed
Setelah melakukan installasi dan konfigurasi semua aplikasi yang dibutuhkan untuk melakukan pengujian, langkah selanjutnya yaitu melakukan pengujian dengan aplikasi apache JMeter. Didalam aplikasi apache JMeter ini yang dilakukan pengujian dengan jumlah user 700, 900 dan 1100 user dengan rentan waktu 1 detik dan 5 detik untuk melihat perbedaan hasil dari pengujian yang dilakukan.
4.4 Konfigurasi Apache JMeter
Didalam aplikasi apache JMeter ini kita melakukan metode stress test untuk melihat nilai dari troughput, response time, sent, received, dan error dengan melakukan konfigurasi jumlah user serta waktu yang dibutuhkan user untuk mengakses web server tersebut. Pada gambar 4.18 adalah tampilan aplikasi Apache JMeter untuk pengujian 700 users dengan waktu pengujian yaitu 1 detik.
Gambar 4.18 Konfigurasi Apache JMeter 700 users dalam waktu 1 detik Kemudian dilakukan pengujian kembali dengan jumlah user yang sama yaitu 700 user dengan waktu yang berbeda dimana waktu sebelumnya adalah 1 detik di naikkan menjadi 5 detik seperti pada gambar 4.19.
Gambar 4.19 Konfigurasi Apache JMeter 700 users dalam waktu 5 detik Setelah selesai dengan pengujian 700 user dalam waktu 1 detik dan 5 detik dilanjutkan kembali ke pengujian dengan jumlah 900 user dalam waktu 1 detik seperti gambar 4.20.
Gambar 4.20 Konfigurasi Apache JMeter 900 users dalam waktu 1 detik Kemudian dilakukan pengujian kembali dengan jumlah user yang sama yaitu 900 user dengan waktu yang berbeda dimana waktu sebelumnya adalah 1 detik di naikkan menjadi 5 detik seperti pada gambar 4.21.
Gambar 4.21 Konfigurasi Apache JMeter 900 users dalam waktu 5 detik Setelah selesai dengan pengujian 900 user dalam waktu 1 detik dan 5 detik dilanjutkan kembali ke pengujian dengan jumlah 1100 user dalam waktu 1 detik seperti gambar 4.22.
Gambar 4.22 Konfigurasi Apache JMeter 1100 users dalam waktu 1 detik Kemudian dilakukan pengujian kembali dengan jumlah user yang sama yaitu 1100 user dengan waktu yang berbeda dimana waktu sebelumnya adalah 1 detik di naikkan menjadi 5 detik seperti pada gambar 4.23.
Gambar 4.23 Konfigurasi Apache JMeter 1100 users dalam waktu 5 detik 4.5 Pengujian Kinerja Web Server
Pengujian kinerja web server dilakukan secara bergantian dengan mendahulukan pengujian terhadap web server Apache, Nginx, lalu kemudian pengujian dilakukan terhadap web server Litespeed dengan menggunakan metode stress test didalam aplikasi Apache JMeter.
4.5.1 Pengujian Web Statis
Pengujian web statis dilakukan dengan mengakses file web yang bernama
“File.php” dengan ukuran 653 bytes berisikan tulisan “Hello, World. Please enter your name” yang sudah di modifikasi dengan css dan json. File ini berada didalam direktori “/var/www/html” dari web server Apache dan Nginx. Sedangkan untuk web server Openlitespeed berada didalam direktori
“/usr/local/lsws/Example/html”. Gambar 4.24 adalah tampilan halaman testing dari web statis yang telah dibuat.
Gambar 4.24 Tampilan halaman pengujian web statis
Hasil dari pengujian web statis untuk web server Apache disajikan dalam tabel 4.1 meliputi parameter error, troughput, sent, dan received.
Tabel 4.1 Hasil pengujian web statis di Apache Jumlah
Pengujian
Error (%)
Troughput (Sec)
Received (KB/Sec)
Sent (KB/Sec) 700 users 1
second
0.0 57.9 49.8 7.0
700 users 5 second
0.0 54.1 46.5 6.5
900 users 1 second
6.4 40.9 39.9 4.6
900 users 5 second
0.6 39.2 34.2 4.7
1100 users 1 second
17.0 47.5 54.9 4.7
1100 users 5 second
11.8 43.3 46.3 4.6
Untuk hasil dari web server Nginx juga disajikan didalam tabel 4.2 meliputi parameter error, troughput, sent, dan received.
Tabel 4.2 Hasil pengujian web statis di Nginx Jumlah
Pengujian
Error (%)
Troughput (Sec)
Received (KB/Sec)
Sent (KB/Sec) 700 users 1
second
4.9 209.4 167.6 25.3
700 users 5 second
3.4 152.1 122.9 18.4
900 users 1 second
2.2 40.7 33.1 4.9
900 users 5 second
0.0 174.9 144.2 21.1
1100 users 1 second
2.6 256.8 208.4 31.1
1100 users 5 second
0.0 195.7 161.3 23.7
Kemudian hasil dari web server Openlitespeed juga disajikan didalam tabel 4.3 dengan meliputi paratemer error, troughput, sent dan received.
Tabel 4.3 Hasil pengujian web statis di Openlitespeed Jumlah
Pengujian
Error (%)
Troughput (Sec)
Received (KB/Sec)
Sent (KB/Sec) 700 users 1
second
0.0 554.6 454.4 67.1
700 users 5 second
0.0 159.7 130.9 19.3
900 users 1 second
0.0 135.5 111.0 16.4
900 users 5 second
0.0 166.3 136.3 20.1
1100 users 1 second
0.0 208.5 170.8 25.2
1100 users 5 second
0.0 194.7 159.5 23.5
Setelah mendapatkan hasil dari pengujian semua parameter yang di sajikan didalam tabel, didalam aplikasi Apache JMeter juga sudah tersedia fitur menu untuk menampilkan response time graph yaitu grafik untuk melihat hasil dari waktu respon web server tersebut. Untuk lebih jelasnya Grafik response time graph bisa dilihat pada gambar 4.25.
Gambar 4.25 Grafik hasil response time web statis
Dari gambar 4.25 dapat diambil kesimpulan bahwa web server Openlitespeed mendapatkan nilai response time yang baik dari web server Apache dan Nginx karena di pengujian dengan beban users 700 dan 900 Openlitespeed lebih responsif dalam menanggapi interaksi yang terjadi antara server dengan client.
4.5.2 Pengujian File PHP
Pengujian file PHP dilakukan dengan mengakses file informasi php dari web server dengan nama “info.php” berukuran 22 bytes. Untuk web server Apache dan
0 100 200 300 400 500 600 700 800 900 1000
700 users 1 second
700 users 5 second
900 users 1 second
900 users 5 second
1100 users 1 second
1100 users 5 second
MiliSecond
Response Time
Apache Nginx litespeed
Nginx file ini berada didalam direktori “/var/www/html”. Sedangkan untuk web server Openlitespeed berada di direktori “/usr/local/lsws/Example/html”. Gambar 4.26 adalah tampilan halaman info php.
Gambar 4.26 Tampilan halaman pengujian info PHP
Hasil dari pengujian info PHP untuk web server Apache disajikan dalam tabel 4.4 meliputi parameter error, troughput, sent, dan received.
Tabel 4.4 Hasil pengujian info PHP di Apache Jumlah
Pengujian
Error (%)
Troughput (Sec)
Received (KB/Sec)
Sent (KB/Sec) 700 users 1
second
0.0 57.0 5.032.9 6.9
700 users 5 second
0.0 54.8 4.844.3 6.6
900 users 1 second
0.0 41.1 3.636.9 4.9
900 users 5 second
0.0 39.7 3.508.7 4.8
1100 users 1 second
0.0 48.6 4.298.5 5.9
1100 users 5 second
0.0 43.5 3.843.9 5.2