最近做了一个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服务。

最新文章

  1. java的concurrent用法详解
  2. 从0开始学java——JUnit4 复习,其实基本思想还是那些,不过采用了新的注释格式的语法
  3. iOS 开发之 ReactiveCocoa(进阶)
  4. &gt;=ios8 应用内跳转到系统设置界面-openURL
  5. c# 输出excel、word实例只需一行代码
  6. GraphLab:新的面向机器学习的并行框架
  7. That&#39;s life,多一些韧性,才有更多的任性(转)
  8. JSONArray用法jquery循环list&lt;Map&gt;对象
  9. EDKII Build Process:EDKII项目源码的配置、编译流程[三]
  10. thinkphp 自动生成模块目录结构
  11. docker-swarm相关命令和注意事项
  12. OkGo3.0 --真实项目使用和二次封装(转)
  13. JVM读书笔记之OOM
  14. Turtle绘制带颜色和字体的图形(Python3)
  15. Java 中的多线程你只要看这一篇就够了
  16. js异常处理
  17. Windows 7 完美安装 Visual C++ 6.0
  18. 第五章:异步Web服务
  19. cobbler setting dnsmasq
  20. hdu1236 排名(结构体排序)

热门文章

  1. 泛型类、Map集合
  2. Spring Aop实现方式总结
  3. 最简单的基于FFMPEG的封装格式转换器(无编解码)
  4. Linux 内核开发—内核简单介绍
  5. HDU 1576 A/B 扩展欧几里德算法
  6. redis持久化和常见故障
  7. 介绍 JSON
  8. Linux下安装GAMS建模优化工具
  9. PHP+jQuery+Ajax实现用户登录与退…
  10. 8个开发必备的PHP功能(转)