Centos + nginx + JBOSS AS 7 搭建Java web application
2024-08-26 01:17:32
最近做了一个Java的web app,一直想在Centos环境中搭建一个完整的web服务器,现在开始动手。
先说说环境:
操作系统: Centos 6.3
WEB服务器: nginx-1.2.5
App服务器:JBOSS AS 7.0.0
1. 配置nginx:
修改/etc/nginx/nginx.conf
http{
...
#--------------------------------------
#JBOSS AS 7
#--------------------------------------
server{
listen 80 default;
location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
2. 将JBOSS AS 7 standalone 添加为Centos服务
2.1. 创建script: /etc/init.d/jbossd
#!/bin/sh
#
# JBoss standalone control script
#
# chkconfig: -
# description: JBoss AS Standalone
# processname: standalone
# pidfile: /var/run/jbossd.pid
# config: /etc/jboss-as/jboss-as.conf # Source function library.
. /etc/init.d/functions # Load Java configuration.
[ -r /etc/java/java.conf ] && . /etc/java/java.conf
export JAVA_HOME # Load JBoss AS init.d configuration.
if [ -z "$JBOSS_CONF" ]; then
JBOSS_CONF=$JBOSS_HOME/bin/standalone.conf
fi [ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}" # Set defaults. if [ -z "$JBOSS_HOME" ]; then
JBOSS_HOME=/usr/local/jboss7
fi
export JBOSS_HOME if [ -z "$JBOSS_PIDFILE" ]; then
JBOSS_PIDFILE=/var/run/jbossd.pid
fi
export JBOSS_PIDFILE if [ -z "$JBOSS_CONSOLE_LOG" ]; then
JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log
fi if [ -z "$JBOSS_USER" ]; then
JBOSS_USER=jboss
fi if [ -z "$STARTUP_WAIT" ]; then
STARTUP_WAIT=
fi if [ -z "$SHUTDOWN_WAIT" ]; then
SHUTDOWN_WAIT=
fi if [ -z "$JBOSS_CONFIG" ]; then
JBOSS_CONFIG=standalone.xml
fi JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh prog='jboss-as'
CMD_PREFIX='' if [ ! -z "$JBOSS_USER" ]; then
if [ -x /etc/rc.d/init.d/functions ]; then
CMD_PREFIX="daemon --user $JBOSS_USER"
else
CMD_PREFIX="su - $JBOSS_USER -c"
fi
fi start() {
echo -n "Starting $prog: "
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid > /dev/null | grep -c $ppid > /dev/null` -eq '' ]; then
echo -n "$prog is already running"
failure
echo
return
else
rm -f $JBOSS_PIDFILE
fi
fi
mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOG mkdir -p $(dirname $JBOSS_PIDFILE)
chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true
#$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT >& > $JBOSS_CONSOLE_LOG &
#$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT & if [ ! -z "$JBOSS_USER" ]; then
if [ -x /etc/rc.d/init.d/functions ]; then
daemon -s /bin/bash --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND= JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT --server-config=$JBOSS_CONFIG >& > $JBOSS_CONSOLE_LOG &
else
su -s /bin/bash $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT --server-config=$JBOSS_CONFIG" >& > $JBOSS_CONSOLE_LOG &
fi
fi count=
launched=false until [ $count -gt $STARTUP_WAIT ]
do
grep 'JBoss AS.*started in' $JBOSS_CONSOLE_LOG > /dev/null
if [ $? -eq ] ; then
launched=true
break
fi
sleep
let count=$count+;
done success
echo
return
} stop() {
echo -n $"Stopping $prog: "
count=; if [ -f $JBOSS_PIDFILE ]; then
read kpid < $JBOSS_PIDFILE
let kwait=$SHUTDOWN_WAIT # Try issuing SIGTERM kill - $kpid
until [ `ps --pid $kpid > /dev/null | grep -c $kpid > /dev/null` -eq '' ] || [ $count -gt $kwait ]
do
sleep
let count=$count+;
done if [ $count -gt $kwait ]; then
kill - $kpid
fi
fi
rm -f $JBOSS_PIDFILE
success
echo
} status() {
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid > /dev/null | grep -c $ppid > /dev/null` -eq '' ]; then
echo "$prog is running (pid $ppid)"
return
fi
fi
echo "$prog is not running"
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
$ stop
$ start
;;
status)
status
;;
*)
## If no parameters are given, print which are avaiable.
echo "Usage: $0 {start|stop|status|restart|reload}"
exit
;;
esac
保存退出,运行chkconfig添加服务(注意,jbossd需要跟上面的shell script的名字一样,这样chkconfig才能找到对应的脚本)
chkconfig --add jbossd
设置运行级别
chkconfig jbossd --level on
在运行级别2345,均会运行jboosd服务。
至此,服务器开机的时候,就会自动打开nginx和jboss服务。
最新文章
- java的concurrent用法详解
- 从0开始学java——JUnit4 复习,其实基本思想还是那些,不过采用了新的注释格式的语法
- iOS 开发之 ReactiveCocoa(进阶)
- >;=ios8 应用内跳转到系统设置界面-openURL
- c# 输出excel、word实例只需一行代码
- GraphLab:新的面向机器学习的并行框架
- That&#39;s life,多一些韧性,才有更多的任性(转)
- JSONArray用法jquery循环list<;Map>;对象
- EDKII Build Process:EDKII项目源码的配置、编译流程[三]
- thinkphp 自动生成模块目录结构
- docker-swarm相关命令和注意事项
- OkGo3.0 --真实项目使用和二次封装(转)
- JVM读书笔记之OOM
- Turtle绘制带颜色和字体的图形(Python3)
- Java 中的多线程你只要看这一篇就够了
- js异常处理
- Windows 7 完美安装 Visual C++ 6.0
- 第五章:异步Web服务
- cobbler setting dnsmasq
- hdu1236 排名(结构体排序)