Selasa, 11 September 2018

WEB SERVER

WEB SERVER

1. Pengertian Web Server

Pengertian Web Server

Secara singkat, pengertian web server adalah perangkat lunak yang memberikan layanan atau service kepada client untuk menerima request HTTP maupun HTTPS dari client yang dikenal. Client yang dimaksud adalah web browser (semisal: Internet Explorer, Google Chrome, Mozilla Firefox). Setelah itu, web server akan mengirimkan request yang diminta oleh client dalam bentuk halaman web, yang secara umum berbentuk dokumen HTML.

2. Prinsip & Cara kerja Web Server

      Anda mungkin telah mengetahui bahwa semua protokol yang terdapat di internet melibatkan satu pihak sebagai server dan pihak lainnya sebagai klien. Begitu pula dengan HTTP (Hypertext Transfer Protocol), yang merupakan wadah bagi aplikasi web yang dijalankan.
cara kerja web server
Cara kerja dari web server
Dalam protokol HTTP, web server berperan sebagai pihak server, sementara web browser berperan sebagai pihak klien. Saat seorang pengguna internet memasukkan sebuah alamat website melalui browser tertentu (IE, Chrome, atau Firefox), maka selanjutnya browser akan memproses permintaan tersebut dengan mengirimkannya ke web server sesuai alamat yang diminta, kemudian menunggu hasilnya untuk beberapa saat.
Jika ternyata yang diminta oleh pengguna adalah sebuah dokumen, maka web server akan langsung mengirimkan dokumen tersebut ke browser yang digunakan. Namun jika dokumen yang diminta mengandung program server side, selanjutnya web server akan menjalankan program server side tersebut dan mengirimkan hasilnya dalam bentuk HTML.

3. Contoh Aplikasi Web Server.

1. Apache

apacheApache merupakan salah satu jenis web server yang paling banyak digunakan di internet. Awalnya, apache didesain untuk sistem operasi UNIX. Apache sendiri memiliki beberapa macam dukungan seperti kontrol akses, PHP, dan SSL. Kontrol akses apache dijalankan bergantung dari nomor IP CGI (Common Gateway Interface) atau nama host. Apache menempatkan kontrol akses sebagai modul, dan yang paling terkenal adalah modul Perl (Practical Extraction and Report Language). Sementara itu, PHP (Personal Home Page) merupakan sebuah program yang menyerupai CGI, untuk memproses teks dan bekerja pada web server.
PHP pada apache web server ditempatkan sebagai salah satu modulnya (mod_php) untuk membuat kinerja PHP lebih baik dan stabil. Apache sendiri termasuk dalam kategori freeware, dengan proses instalasi yang relatif mudah, dapat beroperasi pada berbagai variasi sistem operasi, mudah pengaturan konfigurasinya hanya dengan empat file konfigurasi, dan juga mudah menambahkan peripheral lain ke dalam platform web servernya.

2. Nginx

nginxNginx (dibaca engine x) merupakan salah satu web server open source selain apache. Walaupun sebetulnya apache sudah begitu populer, terdapat satu kekurangannya, yaitu tak dapat menangani kebutuhan web server dengan traffic yang tinggi. Nginx kemudian tercipta untuk menjadi sebuah solusi yang lebih mengedepankan performa, kemudahan, dan kecepatan. Nginx sendiri memiliki beberapa kelebihan, di antaranya :
  1. Arsitektur Event-Based. Berbeda dengan Apache yang menggunakan process based, nginx menggunakan arsitektur event-based sehingga mampu meminimilkan thread untuk memproses sebuah permintaan dari klien, yang artinya memori yang terpakai juga menjadi lebih kecil. Server ringan dan sangat responsif.
  2. Performa Luar Biasa. Semakin banyak thread digunakan, maka semakin banyak memori yang diperlukan. Dalam hal ini, nginx telah didesain untuk menangani hingga sepuluh juta permintaan klien tiap harinya, atau beberapa ratus permintaan per detik.
  3. Fitur Mantap. Jika apache seperti toko serba ada yang menyediakan produk dengan lengkap, nginx hanya menyediakan fitur-fitur yang kebanyakan orang cari, seperti static file serving, virtual hosts, reverse proxying, access control, URL rewriting, dsb.

3. IIS (Internet Information Services)

IISIIS merupakan web server yang digunakan dalam Windows, terutama Windows 2000 dan Windows 2003. Web Server IIS didukung dengan berbagai macam komponen pendukung seperti protokol karingan TCIP/IP, DNS, dan software untuk membuat situs web.
IIS sendiri sebetulnya dapat digunakan sebagai platform tempat aplikasi web berjalan. IIS mendukung berbagai macam protokol seperti HTTP, FTP, SMTP, NNTP, dan SSL. Kelebihannya, IIS merupakan web server yang sangat kompatibel dengan Windows sebagai imbas dari keluaran Microsoft, mendukung platform .NET yang hanya bisa dilakukan dengan IIS. Walau begitu, IIS termasuk web server berbayar, cukup mudah diserang oleh para cracker, serta keamanannya mudah ditembus.

4. Lighttpd

LighttpdLighttpd (dibaca : lightly) merupakan salah satu jenis web server open source lainnya yang awalnya ditulis oleh programmer berkebangsaan Jerman dalam bahasa pemrograman C.
Web server yang satu ini dapat beroperasi dalam komputer dengan sistem operasi Linux atau keluarga Unix lainnya. Salah satu kelebihan menggunakan Lighttpd adalah kemampuannya dalam mengatur CPU load dengan efektif, juga beberapa fitur advance lainnya seperti SCGI, FastCGi, Output-Compression dan URL-Writing.

4. Virgo

Virgo adalah web server yang bersifat open source. Virgo ini dibuat oleh EclipseRT yang berbasis Java dengan fungsinya untuk menjalankan aplikasi Spring-powered dan Java.
Fitur-fitur yang terdapat pada Virgo adalah :

  • Web Admin Console
  • Gogo Shell
  • Plans
  • Provisioning
  • Spring 3
  • User Region
  • Web Container
  • JMX Management
  • Logging
  • Hot Deployment
  • Advanced Resolution Failure Diagnostics
  • Legacy Library Support
  • Equinox Console Extension
  • Automatic Thread Stack Dump on Deadlock.

4. Apache.

                         
Apache merupakan salah satu jenis web server yang paling banyak digunakan di internet. Awalnya, apache didesain untuk sistem operasi UNIX. Apache sendiri memiliki beberapa macam dukungan seperti kontrol akses, PHP, dan SSL. Kontrol akses apache dijalankan bergantung dari nomor IP CGI (Common Gateway Interface) atau nama host. Apache menempatkan kontrol akses sebagai modul, dan yang paling terkenal adalah modul Perl (Practical Extraction and Report Language). Sementara itu, PHP (Personal Home Page) merupakan sebuah program yang menyerupai CGI, untuk memproses teks dan bekerja pada web server.
PHP pada apache web server ditempatkan sebagai salah satu modulnya (mod_php) untuk membuat kinerja PHP lebih baik dan stabil. Apache sendiri termasuk dalam kategori freeware, dengan proses instalasi yang relatif mudah, dapat beroperasi pada berbagai variasi sistem operasi, mudah pengaturan konfigurasinya hanya dengan empat file konfigurasi, dan juga mudah menambahkan peripheral lain ke dalam platform web servernya.

5. Nginx.


Nginx (dibaca engine x) merupakan salah satu web server open source selain apache. Walaupun sebetulnya apache sudah begitu populer, terdapat satu kekurangannya, yaitu tak dapat menangani kebutuhan web server dengan traffic yang tinggi. Nginx kemudian tercipta untuk menjadi sebuah solusi yang lebih mengedepankan performa, kemudahan, dan kecepatan. Nginx sendiri memiliki beberapa kelebihan, di antaranya :
  1. Arsitektur Event-Based. Berbeda dengan Apache yang menggunakan process based, nginx menggunakan arsitektur event-based sehingga mampu meminimilkan thread untuk memproses sebuah permintaan dari klien, yang artinya memori yang terpakai juga menjadi lebih kecil. Server ringan dan sangat responsif.
  2. Performa Luar Biasa. Semakin banyak thread digunakan, maka semakin banyak memori yang diperlukan. Dalam hal ini, nginx telah didesain untuk menangani hingga sepuluh juta permintaan klien tiap harinya, atau beberapa ratus permintaan per detik.
  3. Fitur Mantap. Jika apache seperti toko serba ada yang menyediakan produk dengan lengkap, nginx hanya menyediakan fitur-fitur yang kebanyakan orang cari, seperti static file serving, virtual hosts, reverse proxying, access control, URL rewriting, dsb.

6. Konfigurasi HTTP & HTTPS pada Linux Debian.

A. HTTPS (Hypertext Transfer Protocol Secure) adalah merupakan versi aman (secure) dari HTTP.
  1. Pembahasan Sebelumnya:
    instalasi debian 8 dan Seting IP Statik pada debian
    instalasi SSH Server pada debian
    instalasi NTP Server pada debian
    instalasi Samba Server pada debian
    instalasi DHCP Server pada debian
    instalasi DNS Server pada debian
    instalasi Web Server(HTTP) pada debian
    instalasi FTP Server pada debian
  2. Siapkan alat dan bahan yang sudah dibahas di pembahasan sebelumnya:
    • PC yang telah terinstall Virtual Machine
    • Debian server 8 dengan interface yang telah dikonfigurasi IP address,
    • DNS telah terinstal pada server dan berfungsi dengan baik.
    • Web server telah terinstal pada server dan berfungsi dengan baik.
    • DHCP telah terinstal pada server dan berfungsi dengan baik (opsional).
  3. Install paket ssl, dengan nama paket adalah “ssl-cert”, jalankan dengan perintah #apt-get install ssl-cert
ssl https debian - dpkg -i
jika paket tidak tersedia atau mungkin disk 3 debian tidak ada, anda bisa mendownlad paket ssl di link berikut. ssl-cert-check_3.27-2_all.deb
setelah download taruh file di /home, ganti nama agar mudah di penggil dari terminal. misalnya ssl.deb. lakukan perintah instalasi dengan perintah #dpkg -i /home/ssl.deb
  1. setelah paket ssl-cert berhasil terinstaal pada debian, lanjutkan dengan mengaktifkan mode untuk ssl dengan menggunakan perintah #a2enmod ssl seperti berikut:
 ssl https debian -a2enmod
  1. selanjutnya Aktifkan website untuk “default-ssl”. Dengan perintah #a2ensite default-ssl.conf
ssl https debian -a2ensite
  1. selanjutnya kita membuat folder untuk menaruh sertifikat ssl, yang nanti di akses oleh server. Buatlah folder “sertifikat” pada directory “/home”, kemudian lihat hasilnya dengan mengetikkan “ls”.
 ssl https debian - buat directory sertifika
  1. Buatlah sertifikat dengan perintah berikut:
root@serverdebian:~#openssl req –x509 –nodes –days 730 –newkey rsa:2048 –keyout /home/sertifikat/kunci.key –out /home/sertifikat/kunci.crt
Kemudian sesuaikan data diri berupa namaa negara, provinsi, kota dan lain-lain seperti gambar dibawah.
ssl https debian - perintah openssl
  1. Masuk ke directory “sites-available” yang letaknya pada directory “/etc/apache2” dilanjutkan dengan menampilkan isi direktorinya.
ssl https debian -seting default ssl conf
  1. Backup (copy) file “default-ssl.conf” menjadi default-ssl.conf.bak” pada folder yang sama. bckup dimaksudnkan untuk mengantisipasi kerusakan data pada default-ssl.conf saat kita jadikan praktik. gunakan perintah cp untuk mengcopy filessl https debian -backup file default
ssl https debian -menampilkan ls
  1. Pada file “default-ssl.conf” pastikan letak halaman web utamanya sudah benar.ssl https debian -configurasiPada file yang sama, kemudian ubah letak sertifikatnya.
 ssl https debian -configurasi 2
Sebelum keluar, jangan lupa menyimpan, Ctrl +O, dak keluar dengan Ctrl + X
  1. Restart apache2 nya sebelum melakukan pengujian.ssl https debian -restart
  2. Pengujian
Pengujian dapat dilakukan dari sisi client. Pastikan pada waktu merestart apache tidak terjadi kesalahan. Sebelum melaksanakan ujicoba pastikan komputer server dengan komputer client sudah terhubung dengan baik. Disarankan pengujiannya menggunakan browser “Mozilla firefox” karena untuk menampilkan bukti sertifikat lebih mudah.
  1. Bukalah browser yang terdapat pada client
  2. Ketikkan alamat domain pada address bar, lanjutkan dengan mengklik “advanced” dan diteruskan dengan mengklik “add exception” yang akan menampilkan jendela baru.
ssl https debian - pengujian1
  1. Lanjutkan dengan melihat sertifikat. Klik “view” untuk menampilkan sertifikat, kemudian “close” lanjutkan dengan “confirm…”
ssl https debian -pengujian
  1. Hasil akhir tampilan sesuai dengan halaman index yang dibuat.
      ssl https debian -pengujian web
  1. Cobalah untuk mengubah letak directory dari sertifikat.
  2. Cobalah untuk mengubah lokasi directory default https sehingga tampilannya berbeda dengan http. 

https://akar2.wordpress.com/2017/04/07/konfigurasi-secure-web-server-https-di-debian/

7. Instalasi Konfigurasi PHP  Module.

1. Instalasi PHP Apache Module

PHP dapat dipasang sebagai bagian dari Apache module. Cara ini adalah cara yang paling mudah dalam mengkombinasikan web server Apache dan PHP. Namun konsekuensinya adalah PHP akan mewarisi permission dari proses Apache. Hal ini tentunya akan berdampak pada aspek keamanan pada server anda. Lebih lanjut tentang aspek keamanan ini dapat anda baca pada PHP manual berikut
Langkah pertama dalam melakukan instalasi PHP sebagai bagian dari Apache module adalah dengan menjalankan perintah
$ sudo apt update
$ sudo apt install php libapache2-mod-php
Untuk mengecek apakah PHP telah berjalan di server anda, anda dapat membuat sebuah file dengan isi
<?php
  phpinfo();
?>
di root directory server yang secara default berada di /var/www/html/, misalkan dengan nama file /var/www/html/info.php.
Default owner directory /var/www/html/ adalah root, sehingga anda memerlukan hak akses root untuk membuat atau memodifikasi file dalam directory tersebut.
Kemudian cobalah akses file tersebut menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/info.php atau http://<alamat IP server anda>/info.php. Bila anda mendapatkan output seperti pada Gambar 1 berarti proses instalasi PHP telah berhasil.











Gambar 1. Output phpinfo()

Pada Ubuntu 16.04 versi PHP yang digunakan adalah versi 7.0. Bila anda memerlukan versi lama atau versi lebih baru, maka anda harus menggunakan cara yang berbeda yang tidak dibahas dalam artikel ini.

2. Modifikasi Konfigurasi PHP

Tanpa langkah berikut, sebenarnya instalasi PHP tersebut telah dapat digunakan, namun kadang kita perlu melakukan beberapa modifikasi untuk menyesuaikan dengan kebutuhan program PHP yang nantinya kita buat.

Instalasi MySQL module

Bila anda ingin menggunakan PHP untuk mengolah RDBMS MySQL atau MariaDB, maka anda perlu mengaktifkan PHP MySQL module dengan cara menjalankan perintah
$ sudo apt install php-mysql
kemudian anda perlu me-restart service Apache dengan perintah
$ sudo systemctl restart apache2.service
Untuk memastikan bahwa modul php-mysql telah aktif, buatlah sebuah file di root directory server, misalnya /var/www/html/mysql.php dengan isi

kemudian akses file tersebut menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/mysql.php atau http://<alamat IP server anda>/mysql.php. Jangan lupa, anda perlu mengganti $servername, $username, dan $password pada script untuk disesuaikan dengan konfigurasi server anda. Bila output script tersebut adalah Connection success.
maka instalasi anda berhasil, namun bila tidak maka berarti ada masalah dengan proses instalasi yang anda lakukan.

Pencarian dan Instalasi Berbagai Modul PHP

Untuk meningkatkan fungsionalitas dari PHP, anda dapat menambahkan beberapa modul tambahan ke dalam PHP. Untuk mencari modul-modul yang tersedia dalam repository, gunakanlah perintah
$ sudo apt-cache search php-
Bila anda ingin pencarian yang lebih spesifik, kombinasikan dengan perintah grep, misalnya anda ingin mencari modul PHP yang berkaitan dengan zip, maka anda dapat menggunakan perintah
$ sudo apt-cache search php- | grep zip
Contoh output dari perintah tersebut adalah
libphp-pclzip - transitional dummy package
php-bz2 - bzip2 module for PHP [default]
php-pclzip - ZIP archive manager class for PHP
php-zip - Zip module for PHP [default]
php-zipstreamer - Stream zip files without i/o overhead
php7.0-bz2 - bzip2 module for PHP
php7.0-zip - Zip module for PHP
Bila anda sudah memutuskan modul apa yang perlu anda install, misalnya php-zip, maka gunakan perintah apt install untuk melakukan instalasi PHP modul tersebut. Berikut adalah contoh perintah untuk melakukan instalasi modul php-zip
$ sudo apt install php-zip
Kemudian restart service Apache dengan perintah
$ sudo systemctl restart apache2.service

Menyembunyikan Versi PHP pada HTTP Header

Bila anda tidak menginginkan versi PHP anda tampil pada HTTP Header, demi alasan keamanan misalnya, maka anda dapat memodifikasi file /etc/php/7.0/apache2/php.ini dan /etc/php/7.0/cli/php.ini. Pastikan variable expose_php pada kedua file tersebut bernilai Off seperti ini.
expose_php = Off
Kemudian restart service Apache dengan perintah
$ sudo systemctl restart apache2.service

Mengganti Default Directory Index

Bila anda memiliki dua file index, misalnya index.html dan index.php, dalam satu directory yang sama, maka yang dieksekusi oleh Apache adalah file index.html. Bila anda ingin mengubah urutan prioritas file index, maka anda dapat mengaturnya melalui file /etc/apache2/mods-available/dir.conf.
Ubahlah urutan index.php pada DirectoryIndex yang semula pada urutan keempat seperti ini
<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
menjadi urutan pertama seperti ini
<IfModule mod_dir.c>
        DirectoryIndex index.php  index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Kemudian restart service Apache dengan perintah
sudo systemctl restart apache2.service


8. Instalasi Konfigurasi Web Server pada Linux Debian.


Pertamakali pastikan CD instalasi Linux Debian 7 Server sudah terpasang dengan baik. Jika sudah berikut adalah perintah untuk konfigurasi Web-Server :

# apt-get install apache2 php5 phpmyadmin mysql-server -y

Setelah itu akan muncul popup untuk mengisis password untuk MySQL.
Note: Saya disini menggunakan semua password yang sama, karena supaya mudah diingat.



Gambar.1  password mysql


Gambar.2  Repeat password mysql

Pada gambar diatas dapat diisi password untuk MySQL user, dan gambar kedua untuk mengisi ulang kembali passwordnya.




Gambar.3  Pilihan phpmyadmin

Pilih "apache2" seperti pada gambar diatas. Pilih dengan menekan tombol spasi pada keyboard anda.




Gambar.4  Pilihan phpyadmin

Klik "Ya" pada konfigurasi database phpmyadmin. Lihat gambar diatas.




Gambar.5 Password phpmyadmin


Gambar.6  Password dari mysql untuk phpmyadmin


Gambar.7  Konfirmasi password

Masukan password untuk administrative user dan untuk phpmyadmin, dan konfirmasi password. Lihat gambar diatas.

Langkah berikutnya adalah konfigurasi untuk menjalankan web-server, berikut adalah konfigurasinya :

Masuk ke direktori /etc/apache2/sites-enable :

# cd  /etc/apache2/sites-enable

Selanjutnya salin file 000-default ke web

# cp  000-default web

Konfigurasi file web seperti berikut :

# nano web



Gambar.8  Konfigurasi file web


Gambar.9  Konfigurasi file web

Lihat kedua gambar diatas, pada gambar kesatu itu tampilan pertamakali, lalu konfigurasi menjadi seperti pada gambar kedua.
Note: Ganti tanda bintang (*) menjadi Ip Address server. pada Document Root saya menambahkan direktori baru untuk web saya, yaitu :  /var/www/myweb/ . Untuk selebihnya llihat pada gambar diatas.
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.

Langkah berikutnya masuk ke direktori  /var/www/ untuk konfigurasi file index.

# cd  /var/www/

Buatlah direktory baru dengan nama "myweb" (tanpa tanda kutip), kenapa namanya harus myweb? Karena lokasi untuk menyimpan file web saya simpan di /var/www/myweb.
Berikut perintah untuk membuat direktori baru dengan nama "myweb" :

# mkdir myweb

Jika sudah, masuk ke direktory myweb :

# cd myweb

Posisi kita sekarang berada di /var/www/myweb.
Buat dan konfigurasi file dengan nama index.php disini, caranya seperti berikut :

# nano  index.php



Gambar.10  Konfigurasi membuat file index.php

Disini kita ketik script php dan html untuk contoh web kita. Sebagai contohnya lihat pada gambar diatas. 
Jangan lupa save dengan menekan tombol CTRL+X, Y, enter.

Langkah selanjutnya yaitu me-restart konfigurasinya supaya dapat digunakan, berikut caranya:

# /etc/init.d/apache2 restart

Jika konfigurasi sudah benar akan muncul pesan [OK].

Langkah terakhir yaitu pengecekan konfigurasi.
Pastikan Server debian dengan client sudah terhubung dan dapat nge-Ping dari Client ke Server. Buka Web browser dan ketik nama domain servernya.



Gambar.11  Tampilan hasil web-server

Jika berhasil akan tampil seperti gambar diatas.

Konfigurasi Web-Server sudah selesai, Sekarang Web-Server sudah dapat digunakan.








Tidak ada komentar:

Posting Komentar