i
IMPLEMENTASI WEB SERVER LOKAL DENGAN NGINX,
GUNICORN, SUPERVISOR DAN BAHASA PEMROGRAMAN
PYTHON PADA GNU LINUX DEBIAN
SKRIPSI
Diajukan Untuk Melengkapi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Oleh : Asep 1611500123
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
INSTITUT SAINS DAN BISNIS ATMA LUHUR
PANGKALPINANG
2020
v ABSTRACT
In the current era of the digital industry 4.0, the development of web applications functioned as an information space. With the development of technology now, web applications can be equipped with artificial intelligence and can be used as a communication tool so that it requires a language program that is easily understood and applied to the server. The Python programming language is an example of a programming language that is easy to understand but is rarely implemented on a web server. That in configuring the Apache web server is very difficult to implement in the Python programming language. For this reason, this research will configure or build a server or web server using Nginx, Gunicorn, Supervisor and Python web frameworks such as Django and Uncomplicated Firewall on GNU / Linux Debian 10. The results of the Debian 10 GNU / Linux configuration and server software packages that have been made later can be used as new insights in the development of web applications with the Python programming language.
Keywords : Web Server, Nginx, Supervisor, Python, Linux Debian 10, Uncomplicated Firewall, Local Network
vi
ABSTRAK
Di era industri digital 4.0 sekarang ini, perkembangan aplikasi web difungsi sebagai ruang informasi. Dengan perkembangan teknologi sekarang, aplikasi web sudah bisa dilengkap kecardasan buatan serta mampu sebagai alat komunikasi sehingga dibutuhkan bahasa program yang mudah dipahami dan diterapkan pada
server. Bahasa pemrograman Python merupakan contoh bahasa pemrograman
yang mudah dipahami tapi sangat jarang diimplementasi pada web server. Bahwa dalam melakukan konfigurasi web server apache sangat susah diimplementasi dengan bahasa pemrograman Python. Untuk itu, penelitian ini akan melakukan konfigurasi atau membangun server atau web server dengan menggunakan Nginx, Gunicorn, Supervisor dan kerangka kerja web Python seperti Django serta
Uncomplicated Firewall pada GNU/Linux Debian 10. Hasil dari konfigurasi
GNU/Linux Debian 10 dan paket perangkat lunak server yang telah dilakukan nantinya bisa dijadikan wawasan baru dalam pengembangan aplikasi web dengan bahasa pemrograman Python.
Kata Kunci : Web Server, Nginx, Supervisor, Python, Linux Debian 10,
vii
DAFTAR ISI
Halaman
COVER DALAM ... i
LEMBAR PERNYATAAN ... ii
LEMBAR PENGESAHAN SKRIPSI ... iii
KATA PENGANTAR ... iv
ABSTRACT ... v
ABSTRAK ... vi
DAFTAR ISI ... vii
DAFTAR GAMBAR ... ix DAFTAR TABEL ... x DAFTAR SIMBOL ... xi BAB I PENDAHULUAN 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 2 1.3 Batasan Masalah ... 2
1.4 Tujuan dan Manfaat Penelitian ... 3
1.5 Metode Penelitian ... 3
1.6 Sistematika Penulisan... 4
BAB II LANDASAN TEORI 2.1 Jaringan Komputer ... 5
2.2 Topologi Jaringan Komputer ... 7
2.2.1 Topologi Point to Point ... 7
2.2.2 Topologi Bus ... 8
2.2.3 Topologi Star ... 8
2.2.4 Topologi Ring ... 9
2.2.5 Topologi Mesh ... 9
2.2.6 Topologi Tree ... 10
2.3 Web Server dan Nginx ... 10
2.4 Web Browser ………... ... 11
2.5 Linux ... 11
2.6 GNU Linux Debian ... 11
2.7 System Dan Supervisor ... 12
2.8 Firewall ... 13
2.9 Iptables Dan UFW (Uncomplicated Firewall) ... 13
2.10 Python ... 15
2.11 WSGI (Web Server Gateway Interface) dan Gunicorn... 15
2.12 UML (Unified Modelling Language) ... 16
2.13 NDLC (Network Development Life Circle) ... 17
2.14 Tinjauan Penelitian Terdahulu ... 18
BAB III METODOLOGI PENELITIAN 3.1 Metode Penelitian ... 22
viii 3.1.1 Analysis ... 23 3.1.2 Design ... 23 3.1.3 Simulation Prototyping ... 23 3.1.4 Implementation ... 23 3.1.5 Monitoring ... 24 3.1.6 Manajemen ... 24
3.2 Alat Bantu Pengembangan Sistem ... 24
BAB IV HASIL DAN PEMBAHASAN 4.1 Analisis ... 25
4.1.1 Identifikasi Kebutuhan Fungsional ... 25
4.1.2 Identifikasi Kebutuhan Nonfungsional ... 25
4.1.3 Alur Komunikasi Client Server Pada Jaringan Lokal ... 27
4.1.4 Perangkat Keras Pada Jaringan Lokal ... 28
4.1.5 Komponen Server Pada Jaringan Lokal ... 29
4.2 Desain ... 29
4.2.1 Desain Komunikasi Client Server Pada Jaringan Lokal Dan Firewall ... 30
4.2.2 Desain Perangkat Keras Pada Jaringan Lokal Dan Firewal ... 31
4.2.3 Desain Komponen Client Server Pada Jaringan Lokal Dan Firewal ... 32
4.3 Simulasi Prototipe ... 33
4.4 Implementasi ... 35
4.4.1 Instalasi Sistem Operasi GNU/Linux Debian 10 ... 36
4.4.2 Konfigurasi IP Address ... 37
4.4.3 Instalasi Paket Python Dan Aplikasi Projek ... 39
4.4.4 Konfigurasi Gunicorn Dan Aplikasi Projek ... 40
4.4.5 Konfigurasi Supervisor ... 42
4.4.6 Konfigurasi Web Server ... 44
4.4.7 Konfigurasi Firewall ... 45
4.5 Pemantauan ... 46
4.6 Manajemen ... 48
4.7 Pengujian ... 48
4.7.1 Tabel Pengujian ... 49
4.7.2 Perbedaan Pada Web Server ... 51
BAB V PENUTUP 5.1 Kesimpulan ... 53 5.2 Saran ... 53 DAFTAR PUSTAKA ... 54 LAMPIRAN ... 57
ix
DAFTAR GAMBAR
Halaman
Gambar 2.1 Topologi Jaringan Komputer ... 7
Gambar 2.2 Firewall ... 13
Gambar 2.3 WSGI ... 16
Gambar 2.4 Metode NDLC (Network Development Life Cycle) ... 17
Gambar 3.1 Metode NDLC (Network Development Life Cycle) ... 22
Gambar 4.1 Alur Komunikasi Antara Client Server Di Jaringan Lokal ... 28
Gambar 4.2 Perangkat Keras Pada Jaringan Lokal ... 28
Gambar 4.3 Komponen Server Pada Jaringan Lokal ... 29
Gambar 4.4 Ilustrasi Desain Topologi Jaringan Lokal Dengan Firewall ... 30
Gambar 4.5 Kamunikasi Client Server Pada Jaringan Lokal Dan Firewall ... 31
Gambar 4.6 Perangkat Keras Pada Jaringan Lokal Dan Firewall ... 32
Gambar 4.7 Komponen Client Server Pada Jaringan Lokal Dan Firewall .... 32
Gambar 4.8 Simulasi Dengan Cisco Packet Tracer (Bagian I) ... 33
Gambar 4.9 Simulasi Dengan Cisco Packet Tracer (Bagian II) ... 34
Gambar 4.10 Simulasi Dengan Cisco Packet Tracer (Bagian III) ... 34
Gambar 4.11 Simulasi Dengan Vmware Workstation Pro 15 ... 35
Gambar 4.12 Instalasi Sistem Operasi GNU/Linux Debian 10 Buster ... 36
Gambar 4.13 Tampilan CLI (Command Line Interface) Linux Debian ... 36
Gambar 4.14 Konfigurasi IP Address (Bagian I) ... 37
Gambar 4.15 Konfigurasi IP Address (Bagian II) ... 38
Gambar 4.16 Konfigurasi IP Address (Bagian III) ... 39
Gambar 4.17 Instalasi Paket Python Dan Aplikasi Projek ... 40
Gambar 4.18 Konfigurasi Paket Python Dan Aplikasi Projek (Bagian I) ... 41
Gambar 4.19 Konfigurasi Paket Python Dan Aplikasi Projek (Bagian II) .... 41
Gambar 4.20 Konfigurasi Paket Python Dan Aplikasi Projek (Bagian III) .... 41
Gambar 4.21 Konfigurasi Paket Python Dan Aplikasi Projek (Bagian IV) .... 42
Gambar 4.22 Konfigurasi Supervisor ... 43
Gambar 4.23 Konfigurasi Web Server (Bagian I) ... 44
Gambar 4.24 Konfigurasi Web Server (Bagian II) ... 45
Gambar 4.25 Konfigurasi Firewall (Bagian I) ... 45
Gambar 4.26 Konfigurasi Firewall (Bagian II) ... 46
Gambar 4.27 Pemantauan (Bagian I) ... 46
Gambar 4.28 Pemantauan (Bagian II) ... 47
Gambar 4.29 Pemantauan (Bagian III) ... 47
Gambar 4.30 Hasil Pengujian Ping Test ... 48
Gambar 4.31 Hasil Pengujian Dengan NMAP Dari Laptop Admin ... 48
x
DAFTAR TABEL
Halaman
Tabel 2.1 Referensi Jurnal ... 18
Tabel 4.1 Daftar Perangkat Keras Yang Digunakan ... 26
Tabel 4.2 Daftar Perangkat Lunak Yang Digunakan ... 26
Tabel 4.3 Daftar Istilah atau Kode ... 49
Tabel 4.4 Deskripsi Fungsi dan Deskripsi Pengujian Respon HTTP ... 50
Tabel 4.5 Deskripsi Fungsi dan Deskripsi Pengujian Ping IP ... 50
Tabel 4.6 Identifikasi dan Perencanaan Pengujian ... 50
Tabel 4.7 Pengujian Blackbox Hubungan Client Server ... 51
Tabel 4.8 Pengujian Blackbox Hubungan HTTP respons ... 51
Tabel 4.9 Perbedaan Web Server Apache Dan Nginx... 52
xi
DAFTAR SIMBOL
1. Simbol Activity Diagram
No. Simbol Deskripsi
1. Status Awal Status awal aktivitas sistem, sebuah
diagram aktivitas memiliki sebuah status
awal.
2. Aktivitas Aktivitas yang dilakukan sistem, aktivitas
biasanya diawali dengan kata kerja.
3. Percabangan/decision Asosiasi percabangan dimana jika ada
pilihan aktivitas lebih dari satu.
4. Penggabungan/join Asosiasi penggabungan dimana lebih dari
satu aktivitas digabungkan menjadi satu.
5. Status Akhir Status akhir yang dilakukan oleh sistem,
sebuah diagram aktivitas memiliki sebuah status akhir.
6. Swimlane Memisahkan organisasi bisnis yang
bertanggunga jawab terhadap aktivitas yang terjadi.
2. Simbol Deployment Diagram
No. Simbol Deskripsi
1. Package Package merupakan sebuah bungkusan
dari satu atau lebih node.
2. Node Biasanya mengacu pada perangkat keras
(hardaware), perangkat lunak yang tidak dibuat sendiri (software), jika didalam
node disertakan komponen untuk
mengkonsistenkan rancangan maka komponen yang diikut sertakan harus sesuai dengan komponen yang telah didefinisikan sebelumnya pada diagram Aktivitas
xii komponen.
3. Kebergantungan/dependency Kebergantungan antar node, arah panah mengarah pada node yang dipakai.
4. Link Relasi antar node.
3. Simbol Component Diagram
No. Simbol Deskripsi
1. Komponen/component Komponen sistem
2. Kebergantungan/dependency Kebergantungan antar component, arah panah mengarah pada component yang dipakai.