zoukankan      html  css  js  c++  java
  • Centos + nginx + JBOSS AS 7 搭建Java web application

    最近做了一个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: - 80 20
    # 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=30
    fi
    
    if [ -z "$SHUTDOWN_WAIT" ]; then
      SHUTDOWN_WAIT=30
    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 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
          echo -n "$prog is already running"
          failure
          echo
          return 1
        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 2>&1 > $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=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT --server-config=$JBOSS_CONFIG 2>&1 > $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" 2>&1 > $JBOSS_CONSOLE_LOG &
        fi
      fi
    
      count=0
      launched=false
    
      until [ $count -gt $STARTUP_WAIT ]
      do
        grep 'JBoss AS.*started in' $JBOSS_CONSOLE_LOG > /dev/null
        if [ $? -eq 0 ] ; then
          launched=true
          break
        fi
        sleep 1
        let count=$count+1;
      done
    
      success
      echo
      return 0
    }
    
    stop() {
      echo -n $"Stopping $prog: "
      count=0;
    
      if [ -f $JBOSS_PIDFILE ]; then
        read kpid < $JBOSS_PIDFILE
        let kwait=$SHUTDOWN_WAIT
    
        # Try issuing SIGTERM
    
        kill -15 $kpid
        until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ]
        do
          sleep 1
          let count=$count+1;
        done
    
        if [ $count -gt $kwait ]; then
          kill -9 $kpid
        fi
      fi
      rm -f $JBOSS_PIDFILE
      success
      echo
    }
    
    status() {
      if [ -f $JBOSS_PIDFILE ]; then
        read ppid < $JBOSS_PIDFILE
        if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
          echo "$prog is running (pid $ppid)"
          return 0
        fi
      fi
      echo "$prog is not running"
    }
    
    case "$1" in
      start)
          start
          ;;
      stop)
          stop
          ;;
      restart)
          $0 stop
          $0 start
          ;;
      status)
          status
          ;;
      *)
          ## If no parameters are given, print which are avaiable.
          echo "Usage: $0 {start|stop|status|restart|reload}"
          exit 1
          ;;
    esac

    保存退出,运行chkconfig添加服务(注意,jbossd需要跟上面的shell script的名字一样,这样chkconfig才能找到对应的脚本)

    chkconfig --add jbossd

    设置运行级别

    chkconfig jbossd --level 2345 on

    在运行级别2345,均会运行jboosd服务。

    至此,服务器开机的时候,就会自动打开nginx和jboss服务。

  • 相关阅读:
    如何用密码保护共享文件?
    如何让光驱自动弹出和关闭?
    欢迎参加“诊断 Windows 7 启动及登录缓慢问题”在线技术会议
    谁偷走了我的系统资源?
    修改Windows验证的登陆框为页面
    使用Fiddler提高前端工作效率
    对非管理员隐藏Site Actions的菜单
    C#多线程参数传递
    转:管理网站集所使用的内容数据库
    转:十步骤让你轻松提升SharePoint性能
  • 原文地址:https://www.cnblogs.com/enixyu/p/3527967.html
Copyright © 2011-2022 走看看