Dnes vám ukážeme, jak nastavit JAVA, JBoss AS a server Apache fungující jako reverzní proxy pomocí jednoho z našich virtuálních serverů Debian. Předpokládáme, že máte funkční server Apache.
Co je tedy JBoss?
JBoss je open-source aplikační server vyvinutý společností RedHat založený na platformě J2EE pro vývoj a nasazení podnikových Java aplikací, webových aplikací, služeb, portálů a dalších. J2EE umožňuje, aby byly aplikace standardizované a modulární, což umožňuje JAVA zvládnout mnoho programovacích aspektů při vývoji aplikace.
Než začneme s nastavením, ujistěte se, že máte plně aktuální systém Debian, takže proveďte:
# apt-get update && apt-get upgrade --show-upgraded -y
Jakmile bude váš systém Debian plně aktualizován, nainstalujeme JAVA. V tomto nastavení používáme balíček „sun-java“, který se nachází v „non-free“ úložišti Debianu. Abychom jej mohli nainstalovat, musíme nejprve povolit zdroje, takže proveďte následující:
# echo "deb http://ftp.us.debian.org/debian squeeze main contrib non-free" >> /etc/apt/sources.list
Jakmile umístíte zdroje, dalším krokem je instalace JAVA na váš systém Debian. Chcete-li to provést, postupujte takto:
# apt-get update && apt-get install sun-java6-jdk -y
Nyní byste měli mít na svém serveru nainstalovanou JAVA. Chcete-li to ověřit, spusťte:
# java -version
a měli byste vidět něco takového:
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, dalším krokem je instalace a konfigurace aplikačního serveru JBoss. Používáme nejnovější konečnou (v době psaní tohoto článku) verzi JBoss, která je ‚ver.7.1.1‘. Přejděte tedy na http://www.jboss.org/jbossas/downloads/ a stáhněte si verzi JBoss, kterou chcete nainstalovat na svůj virtuální server Debian.
Postup je následující:
# 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/
Dále musíme nakonfigurovat JBoss AS tak, aby běžel bez oprávnění „root“, protože jeho spuštění jako „root“ je velké bezpečnostní riziko. Nejlepší způsob, jak spustit JBoss, je použít vyhrazeného systémového uživatele, který bude spouštět server JBoss pomocí schopností „sudo“, takže:
Vytvořte skupinu, přidejte uživatele jboss do skupiny, nastavte heslo uživatele jboss a udělejte z něj vlastníka JBoss AS
# addgroup jbossgroup # useradd -g jbossgroup jboss # passwd jboss # chown jboss:jbossgroup /opt/jboss-as-7.1.1.Final/ -R
POZNÁMKA:pokud již máte nastavení sudo, je to v pořádku, ale pokud nemáte, musíte jej nainstalovat. Pokud si tím nejste jisti, proveďte následující:
# [[ ! $(which sudo) ]] && apt-get install sudo -y
Dále přidejte uživatele jboss do skupiny sudo:
# gpasswd -a jboss sudo
Dobře, s tím vším jsme připraveni spustit server JBoss. Poslední věc, kterou musíme udělat, je následující:
Otevřete konfigurační soubor JBoss standalone.xml pomocí vašeho oblíbeného editoru a proveďte následující změny:
# 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
To zpřístupní veřejné a manažerské rozhraní JBoss odkudkoli (samozřejmě pomocí ověřování), takže jej budete moci spravovat prostřednictvím prohlížeče.
S tím vším je server JBoss nastaven a připraven, ale jak ho máme spustit? JBoss bohužel nedodává s inicializačním skriptem pro Debian, takže jej lze spustit jako službu. Abychom toho dosáhli, musíme vytvořit tento init skript, takže jej vytvořte přidáním následujících řádků do ( /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
Uložte soubor a přiřaďte mu spustitelný bit pomocí:
chmod +x /etc/init.d/jboss
pak ji přidejte do všech runlevelů a zapalte ji. Proveďte to spuštěním:
# update-rc.d -f jboss defaults # service jboss start
JBoss by nyní měl být spuštěn a poslouchat na portu 8080. Otevřete tedy frontend otevřením http://
Po nasazení a povolení aplikace k ní můžete přistupovat na adrese http://
Dalším krokem je nakonfigurovat Apache jako reverzní proxy, aby mohl zpracovávat a předávat požadavky vašemu JBoss a skrýt číslo portu v URL. Upravte tedy konfigurační soubor Apache (/etc/apache2/apache2.conf) a přidejte následující úryvek (virtuální hostitel) v dolní části souboru:
<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>
uložte soubor a než znovu načtete apache, aby se změny projevily, ujistěte se, že modul mod_proxy je povolen, jinak se nespustí.
# a2enmod proxy_http && service apache2 restart
Nyní lze přistupovat k vaší aplikaci JBoss otevřením adresy http://yourdomain.tld/
Jako doplněk k tomuto nastavení, co když chcete do aplikace JBoss zahrnout nějaké „PHP“ skripty? Řekněme například, že chcete mít „http://yourdomain.tld/service.php“, tak jak můžeme říct Apache, aby tyto požadavky nepředával JBoss, ale místo toho je obsluhoval sám? Dosáhnout toho je docela triviální, takže se vraťme a upravme našeho ‚virtuálního hostitele‘ tak, aby vypadal jako ten níže:
<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>
každý php skript v adresáři „/var/www/demoWeb“ nebude předán JBoss a bude přístupný na http://yourdomain.com/