Senin, 15 April 2013

17.49 - No comments

Cari tahu yuk membuat Java Web Server dengan menampilkan file html pada localhost



JAVA WEB SERVER
  • Bagaimana caranya menampilkan sebuah file html dengan cara membuka localhost sendiri dengan port yang telah ditentukan.

Dari Code yang sudah ada dan sudah dijadukan panutan itu sbenernya hanya ada beberapa yang harus diubah ataupun juga ditambahkan baris codenya yaitu seperti gambar berikut ini: 

Jadi ditengah soucre codeny yang ada, tambahkan 3 baris seperti diatas untuk dapat mengakses html yang pathnya telah kami tentukan sebelumnya. Jadi kita membuat sebuah variable file dengan tipe data sebuah file dengan path yang telah ditentukan. Setelah pathnya sudah benar maka variable file tersebut akan dimasukkan ke dalam class file input stream.
Setelah itu tambahkan bebrapa line lagi agak dibawah kode sebelumnya dengan seperti berikut :



Yang dmana code diatas berfungsi untuk memanggilkan file input stream tadi, lalu dengan itu file html yang berada pada path pilihan kita nantinya akan dapat di outputkan dan dapat diperiksa.

Minggu, 14 April 2013

17.14 - No comments

Cari tahu yuk tata cara membuat WEB SERVER yang baik dan benar


WEB SERVER

  • Cara memuat routing sederhana yang terdiri atas client, router dan DMZ?
Caranya Pertama buatlah sebuah file yang akan menginisiasikan tiap host dan switch. Tulis script berikut pada file tersebut.
            Untuk membuat switch :
            uml_switch -unix [nama_switch] > /dev/null < /dev/null &
           
            untuk membuat host yang terhubung dengan switch :
             xterm -T [nama_host] -e linux ubd0=[nama_host],uml umid=[nama_host]             eth0=daemon,,,[nama_switch] mem=[jumlah memori] &
           
            untuk membuat router:
            xterm -T [nama_router] -e linux ubd0=[nama_router],uml umid=[nama_router]             eth0=tuntap,,,10.151.70.77 eth1=daemon,,,[nama_switch] mem=[jumlah_memori] &
           
            buatlah host sebanyak yang dibutuhkan dengan nama yang berbeda-beda, dalam soal buat  routing dengan 1 client, 1 DMZ dan 1 router. Kita anggap client dan DMZ  sebagai host   yang terhubung dengan switch sehingga buat 2 host ,1 switch dan 1 router

  • Cara meng-install apache,mySQL, phpmyadmin pada DMZ
    Host ,switch dan router telah dibuat, namun saat dijalankan host,router dan switch masih belum terhubung satu dengan yang lainnya dan belum terhubung ke internet juga. Oleh karenanya kita harus melakukan beberapa konfigurasi untuk terhubung ke jaringan ITS sehingga dapat menginstall apache,mySQL dan phpmyadmin pada host DMZ.

    Konfigurasi pada Router :
    edit file pada direktori /etc/network/interfaces dengan text editor (nano,vim,dll). Tambahkan script berikut :
    auto lo
    iface lo inet loopback

    auto eth0 # inisiasi hubungan ke jaringan luar
    iface eth0 inet static
    address 10.151.70.78 #ip router yang diinginkan(IP yang diberikan +2)
    netmask 255.255.255.0 #netmask
    gateway 10.151.70.77 # gateway yang diinginkan(IP yang diberikan +1)

    auto eth1 # hubungan ke switch
    iface eth1 inet static
    address 172.16.0.3 #ip router ke switch
    netmask 255.255.255.0

    buka file pada /etc/sysctl.conf
    uncommnet pada bagian net.ipv4.ip_forward=1
    untuk dapat ping ke jaringan luar kita harus menambahkan script untuk mengatur iptables. Edit file pada /etc/rc.local dan tambahkan script berikut :
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.

    Restart service untuk jaringan dengan menginput command :
    service networking restart.

    Tes untuk koneksi ke jaringan ITS dengan ping its.ac.id.


    Konfigurasi pada host
    buka dan edit file pada /etc/network/interfaces dengan script berikut :

    auto lo
    iface lo inet loopback

    auto eth0 # untuk hubungan dengan router
    iface eth0 inet static
    address 172.16.0.131 #ip host yang diinginkan
    netmask 255.255.255.0
    gateway 172.16.0.3 #gateway adalah ip router yang terhubung dengan switch

    restart service untuk networking dengan menjalankan command :
    service networking restart

    Ping ke router lalu ping ke its.ac.id
    jika host telah mendapatkan respond maka sudah terhubung dengan jaringan ITS.
    Install apache2, mySQL dan phpmyadmin 

    apt-get install apache2
    apt-get install mySQL
    apt-get install phpmyadmin
     

  • DMZ akan digunakan sebagai Web Server. Terdapat 2 buah website yang ditangani oleh web server ini yaitu ip_anda:80, ip_anda:8080. Kemudian pada website  ip_anda:80  terdapat subdirektori /admin yang mana sebenarnya file-filenya terletak di /home/admin, berbeda dengan file-file lain yang terletak di /var/www.Ketika mengakses ip_anda:8080 user harus menginputkan username dan password (menggunakan .htaccess) Semua website tidak boleh menampilkan list direktori. Jadi jika tidak ada file index (index.html, index.php, default.asp) maka daftar file dan subdirektori yang ada tidak akan tampil. Ketika kita mengakses ip_anda:80/example maka akan diarahkan ke ip_anda:80/example/example.html

Untuk dapat membuka laman sebuah website kita harus menginstall lynx browser pada virtual host yang kita miliki.

Apt-get install lynx

setelah menginstall apache cobalah untuk membuka laman default dari DMZnya dengan menjalankan command 

lynx (ip_anda)172.16.0.131:80 atau localhost
Jika mengeluarkan tampilan sebagai berikut maka apache2 sudah terinstall dengan baik

Konfigurasi untuk port 80:

untuk menambahkan meletakkan file-file yang ingin diakses pada sebuah direktori tambahkan direktori baru pada direktori home dengan menjalankan command :
mkdir /home/admin.

Agar dapat membuka file pada direktori admin tersebut dengan menggunakan lynx kita harus mengedit file pada /etc/apache2/sites-availble/default dengan menambahkan :
 <Directory /home/admin/>

                Order allow,deny

                allow from all

        </Directory>


Lalu untuk mengubah agar lynx hanya membuka alamat dengan menunjuk kepada direktori file yang terdapat pada /admin kita tambahkan script berikut

Alias /admin /home/admin

dan hapus kata indexes pada kalimat Option Indexes FollowSymLinks Multiviews
sehingga script pada /etc/apache2/sites-availble/default menjadi :

Konfigurasi pada port 8080:
copy  script /etc/apache2/sites-availble/default (blm diedit) ke filebaru pada direktori /etc/apache2/sites-availble/filebaru. Lalu edit pada beberapa bagian diantaranya :
tambahkan pada baris paling atas listen 8080
ganti virtualhost yang dituju menjadi 8080
<VirtualHost *:8080>

ganti direktori pada document root menjadi /var/www/fiilebaru(nama file baru)
DocumentRoot /var/www/ fiilebaru

untuk menambah autentikasi pada saat membuka laman dengan port 8080. buatlah file baru pada /var/www/ dengan nama .htaccess jalankan dengan command :
nano /var/www/.htaccess
tambahkan pada file tersebut :

AuthName "selamat datang" #header dari kalimat saat prompt autentikasi keluar
     AuthType Basic
     AuthUserFile /var/www/.htpasswd #letak dari password tiap user yang telah direquire
     require user e19 # nama-nama user yang dapat mengakses laman

Buat file .htpasswd dengan menjalankan command
htpasswd -cmd .htpasswd , dimana akan diberikan prompt untuk memasukan nama user dan password yang ingin diberikan. Atau dengan membuat file baru pada /var/www/ dengan nama .htpasswd yang berisi namauser:enkripsipassword.

Lalu edit kembali file /etc/apache2/sites-availble/port8080 dengan mengganti pada kalimat AllowOverride None diganti menjadi AllowOverride AuthConf

jalankan command service apache2 restart. Untuk merestart apache
jalankan dengan membuka laman lynx ip_anda:8080


  • Buatlah configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus :  self-signed-certificate. 


Untuk membuat ssl dengan studi kasus self-signed-certificate , pertama kita harus mengenerate sertifikatnya dan keynya dengan menjalankan command berikut :
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days NNN

buat folder baru pada direktori yang diinginkan lalu copy sertifikat dan  key yang telah digenerate tadi ke folder tersebut.

cp new.cert.cert /direktori_anda/apache.pem

cp new.cert.key /direktori_anda/apache.key
lalu buka dan edit file pada /etc/apache2/sites-availble/default-ssl menjadi :

SSLEngine on

SSLCertificateFile /direktori_anda/apache.pem

SSLCertificateKeyFile /direktori_anda/apache.key


jalankan command a2ensite default-ssl
service apache2 restart

untuk mencobanya buka laman dengan tambahan https sebagai protokolnya.

  •  Lakukan configurasi untuk mengoptimasi Apache dengan asums:  guaranteed  RAM (RAM yang pasti tersedia untuk apache) sebesar 8 MB 


Kita lihat besar memori yang digunakan untuk menjalankan webserver dengan mengetikkan command top. Disitu kita dapat melihat jumlah memori yang digunakan tiap proses, jika kita mengetikkan shift+m maka akan di sort sesuai dengan jumlah terbesar dari yang terkecil. Alhasil pada data yang kami dapatkan terlihat bahwa terdapat lebih dari satu proses apache yang berjalan. Untuk mengoptimasi penggunaan memori ini kita ambil nilai dari memori yang paling besar

lalu jalankan command free -m untuk melihat jumlah memori yang terpakai seluruhnya dan yang free.

Maka jalankan rumus sebagai berikut.

N = nilai optimasi
M = jumlah memori yang dipakai proses apache2
F = memori yang free

(ceil)N = M * 0,8 / F
nilai N dibulatkan keatas

lalu buka file pada /etc/apache2/apache2.conf  cari MaxClients yang digunakan dan ganti dengan nilai dari N.
Min dan MaxSpareServers adalah 20% dari nilai MaxClients dan dibulatkan
sehingga menjadi

MinSpareServers         20%*N(Ceil)
MaxSpareServers        20%*N(Ceil)
MaxClients                  N
untuk melihat hasilnya jalankan command top kembali shift+m lihat jumlah proses dengan command apache2