Hari ini kami akan menunjukkan kepada Anda cara mengatur JAVA, JBoss AS dan server Apache yang bertindak sebagai proxy terbalik menggunakan salah satu Server Virtual Debian kami. Kami menganggap Anda memiliki server Apache yang berfungsi.
Jadi, apa itu JBoss?
JBoss adalah server aplikasi sumber terbuka yang dikembangkan oleh RedHat berdasarkan platform J2EE untuk mengembangkan dan menerapkan aplikasi Java perusahaan, aplikasi Web, Layanan, Portal, dan lainnya. J2EE memungkinkan aplikasi distandarisasi dan modular memungkinkan JAVA menangani banyak aspek pemrograman saat mengembangkan aplikasi.
Sebelum memulai penyiapan, pastikan Anda memiliki sistem Debian yang sepenuhnya terbaru, jadi jalankan:
# apt-get update && apt-get upgrade --show-upgraded -y
Setelah sistem Debian Anda diperbarui sepenuhnya, kami akan menginstal JAVA. Dalam pengaturan ini kami menggunakan paket 'sun-java' yang berada di repositori 'non-free' Debian. Untuk menginstalnya, kita harus mengaktifkan sumbernya terlebih dahulu, jadi lakukan hal berikut:
# echo "deb http://ftp.us.debian.org/debian squeeze main contrib non-free" >> /etc/apt/sources.list
Setelah Anda menempatkan sumber, langkah selanjutnya adalah menginstal JAVA di Sistem Debian Anda. Untuk melakukan itu, jalankan:
# apt-get update && apt-get install sun-java6-jdk -y
Anda seharusnya sudah menginstal JAVA di server Anda. Untuk memverifikasi ini, jalankan:
# java -version
dan Anda akan melihat sesuatu seperti ini:
java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
Ok, langkah selanjutnya adalah menginstal dan mengkonfigurasi Server Aplikasi JBoss. Kami menggunakan versi terakhir (saat artikel ini ditulis) dari JBoss yaitu 'ver.7.1.1'. Jadi, buka http://www.jboss.org/jbossas/downloads/ dan unduh versi JBoss yang ingin Anda instal di Server Virtual Debian Anda.
Langkah-langkahnya adalah sebagai berikut:
# cd /opt # wget -P /var/tmp http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz # tar -zxf /var/tmp/jboss-as-7.1.1.Final.tar.gz -C /opt/
Selanjutnya, kita perlu mengkonfigurasi JBoss AS sehingga akan berjalan tanpa hak 'root' karena menjalankannya sebagai 'root' adalah risiko keamanan yang besar. Cara terbaik untuk menjalankan JBoss adalah dengan menggunakan pengguna sistem khusus yang akan menjalankan server JBoss menggunakan kekuatan 'sudo', jadi:
Buat grup, tambahkan pengguna jboss ke grup, atur kata sandi pengguna jboss dan jadikan sebagai pemilik JBoss AS
# addgroup jbossgroup # useradd -g jbossgroup jboss # passwd jboss # chown jboss:jbossgroup /opt/jboss-as-7.1.1.Final/ -R
CATATAN:jika Anda sudah memiliki pengaturan sudo tidak apa-apa, tetapi jika belum Anda perlu menginstalnya. Jika Anda tidak yakin tentang ini, jalankan yang berikut:
# [[ ! $(which sudo) ]] && apt-get install sudo -y
Selanjutnya, tambahkan pengguna jboss ke grup sudo:
# gpasswd -a jboss sudo
Ok, dengan semua itu, kita agak siap untuk memulai server JBoss. Hal terakhir yang perlu kita lakukan adalah sebagai berikut:
Buka file konfigurasi standalone.xml JBoss menggunakan editor favorit Anda dan buat perubahan berikut:
# vim /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml <interface name="management"> <!--<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>--> <any-ipv4-address/> </interface> <interface name="public"> <!--<inet-address value="${jboss.bind.address:127.0.0.1}"/>--> <any-ipv4-address/> </interface
Ini akan membuat frontend manajemen dan publik JBoss tersedia dari mana saja (tentu saja menggunakan autentikasi) sehingga Anda dapat mengelolanya melalui browser.
Dengan semua itu, server JBoss sudah diatur dan siap, tetapi bagaimana kita harus memulainya? Sayangnya, JBoss tidak mengirimkan skrip init untuk Debian sehingga dapat dijalankan sebagai layanan. Untuk mencapai ini, kita perlu membuat skrip init jadi buatlah dengan menambahkan baris berikut di ( /etc/init.d/jboss ) :
#!/bin/sh ### BEGIN INIT INFO # Provides: jboss # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/Stop/Restart JBoss AS v7.0.0 ### END INIT INFO set -e ### declare the directory where is jboss/java installed JAVA_HOME=/usr/lib/jvm/java-6-sun JBOSS_HOME=/opt/jboss-as-7.1.1.Final export PATH=${JAVA_HOME}/bin:${JBOSS_HOME}/bin:${PATH} case $1 in start ) echo -e "\aStarting JBoss ..." start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh ;; stop ) echo -e "\aStopping JBoss ..." start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-cli.sh -- --connect command=:shutdown ;; restart ) echo -e "\aRestarting the JBoss server ..." start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/jboss-cli.sh -- --connect command=:shutdown && \ start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh ;; * ) echo -e "\aUsage: /etc/init.d/jboss {start|stop|restart}" exit 1 ;; esac exit 0
Simpan file dan tetapkan bit yang dapat dieksekusi dengan:
chmod +x /etc/init.d/jboss
kemudian tambahkan ke semua runlevel dan jalankan. Lakukan ini dengan menjalankan:
# update-rc.d -f jboss defaults # service jboss start
JBoss seharusnya aktif dan mendengarkan pada port 8080 sekarang. Jadi, akses frontend dengan membuka http://
Setelah Anda menerapkan dan mengaktifkan aplikasi Anda, Anda dapat mengaksesnya di http://
Langkah selanjutnya adalah mengkonfigurasi Apache sebagai proxy terbalik sehingga dapat menangani dan meneruskan permintaan ke JBoss Anda dan menyembunyikan nomor port di URL. Jadi, edit file konfigurasi apache (/etc/apache2/apache2.conf) dan tambahkan cuplikan berikut (virtual host) di bagian bawah berkas:
<VirtualHost *:80> ServerName www.yourdomain.tld ServerAlias yourdomain.tld ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://yourdomain.tld:8080/helloworld/ ProxyPassReverse / http://yourdomain.tld:8080/helloworld/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
simpan file dan sebelum memuat ulang apache agar perubahan diterapkan, pastikan modul mod_proxy diaktifkan atau jika tidak maka akan gagal untuk memulai.
# a2enmod proxy_http && service apache2 restart
sekarang aplikasi JBoss Anda sudah bisa diakses dengan membuka ‘http://domainanda.tld/’
Sebagai tambahan untuk pengaturan ini, bagaimana jika Anda ingin menyertakan beberapa skrip 'PHP' di bawah aplikasi JBoss Anda? Katakanlah misalnya, Anda ingin memiliki 'http://yourdomain.tld/service.php' jadi bagaimana kami bisa memberi tahu Apache untuk tidak meneruskan permintaan tersebut ke JBoss tetapi malah melayaninya sendiri? Cukup sepele untuk mencapai ini, jadi mari kita kembali dan mengedit 'Virtual Host' kita sehingga akan terlihat seperti di bawah ini:
<VirtualHost *:80> ServerName www.yourdomain.tld ServerAlias yourdomain.tld DocumentRoot /var/www/demoWeb ProxyPassMatch ^/(.*)+\.php ! ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://yourdomain.tld:8080/helloworld/ ProxyPassReverse / http://yourdomain.tld:8080/helloworld/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
setiap skrip php di dalam direktori ‘/var/www/demoWeb’ tidak akan diteruskan ke JBoss dan akan dapat diakses di http://domainanda.com/