背景

公司大多数WEB程序(如T24web、TOCF等)都部署在JBoss中,熟练且深入的掌握JBoss的部署是一切开发的前提,也是后续进行微服务、虚拟化(docker、K8S)改造基础。

部署之前

OS环境(RedHat 7.2)

[root@t24webcvm1 deployments]<20180920 09:45:55># hostnamectl Static hostname: t24webcvm1Icon name: computer-vmChassis: vmMachine ID: Boot ID: Virtualization: vmwareOperating System: Red Hat Enterprise Linux Server 7.2 (Maipo)CPE OS Name: cpe:/o:redhat:enterprise_linux:7.2:GA:serverKernel: Linux 3.10.0-327.36.3.el7.x86_64Architecture: x86-64

其他准备

a. 所有操作都是root用户下进行,不用考虑权限问题;

b. 安装前请先关闭OS防火墙

# systemctl stop firewalld
# systemctl disable firewalld
### 查看防火墙状态命令
# systemctl status firewalld

c. 修改系统资源限制
默认情况化系统对资源的使用情况(进程级)做出来了相关限制,如:打开文件句柄数不大于1024、栈空间大小为8M等;为充分利用系统资源,我们将已有的限制改大,在/etc/security/limits.conf的文件末尾添加如下内容:

* soft core 102400
* hard core 102400
* soft nofile 102400
* hard nofile 102400
* soft nproc 102400
* hard nproc 102400

说明:

/etc/security/limits.conf文件的格式为:

<domain>      <type>  <item>         <value>

Domain:代表用户或用户组,*表示所有用户

Type: 代表限制类型,一般为hard或soft。hard标识“硬限制”,不能超过此值(如:文件无法打开);soft为“软限制”,实际可以超过此值,超过后系统发出告警信息;

Item:为限制项。如:core(限制core文件大小)、stack(进程栈空间)等;

Value:表示具体值

部署步骤

  • JDK安装

  • JBOSS EAP安装

a. 安装包下载,到redhat公司官网下载JBOSS安装包(可能需要注册):

如本文示例的安装包为:jboss-eap-6.2.0.zip

b. 安装包解压
用unzip命令将你所下的安装包解压,如本文将安装包解压到上级目录(-d选项指定解压路径):

unzip jboss-eap-6.2.0.zip –d ../

c. 创建JBOSS EAP的管理用户
进入解压的JBOSS_HOME/bin路径,执行./add_user.sh脚本,添加管理用户,如下:

$ /opt/jbshome/jboss-eap-6.2/bin/add-user.sh
选择a (Management User)
Username: jbossadmin
Password: 密码
Groups(输入用户所属组): 回车
ManagementRealm: yes

此命令将修改:JBOSS_HOME/standalone(或domain)/configuration/目录下mgmt-users.properties、mgmt-groups.properties等文件,用于设置JBOSS服务的管理用户。

d. 创建JBOSS EAP的实例

创建完管理用户后,即可创建Jboss实例目录,将JBOSS_HOME/standalone目录下的所有文件拷贝到Server1/目录下:

$ cp -fr /opt/jbshome/jboss-eap-6.2/standalone /opt/jbshome/appserver/Server1

拷贝后目录结构如下:

[root@t24webcvm1 Server1]<20180920 10:58:06># ls
configuration  deployments  lib   tmp
[root@t24webcvm1 Server1]<20180920 10:58:06># pwd
/opt/jbshome/appserver/Server1

JBOSS EAP配置

a. 创建JBOSS运行日志目录
对应JBOSS实例名,我们在/var/log目录下创建JBOSS日志路径:

mkdir -p /var/log/jbslog/eap_logs/Server1

为了日志查看方便,再在Server1目录下创建指向此日志目录的软连接,这样,以后就可以直接在Server1目录下查看JBOSS的允许日志了。

ln -s /var/log/jbslog/eap_logs/Server1 /opt/jbshome/appserver/Server1/log

b. 启动JBOSS实例
为方便JBOSS的起停,我们编写起停脚本如下。

start:

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
export JAVA_OPTS="-Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:NewSize=1024m -XX:MaxNewSize=1200m -XX:HeapDumpPath=/var/log/jbslog/jvm_logs/ -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"
nohup /opt/jbshome/jboss-eap-6.4/bin/standalone.sh -Djboss.server.base.dir=/opt/jbshome/appserver/Server1/ --server-config=standalone-full.xml -b 0.0.0.0 -Djboss.bind.address.management=99.12.98.194 -Djboss.bind.address=99.12.98.194 -Djboss.socket.binding.port-offset=0 -Djboss.node.name=Server1 >> /var/log/jbslog/eap_logs/Server1/Server1-$(date "+%Y%m%d").out 2>&1 &

stop

[root@t24webcvm1 appserver]<20181029 09:34:38># cat Server1-stop.sh
/opt/jbshome/script/stop-jboss.sh /opt/jbshome/appserver/Server1

start脚本主要分为三部分:

  1. JAVA_HOME指定JDK的安装目录;
  2. JAVA_OPTS指定JVM(JAVA虚拟机)相关参数,如:

-Xms

2048m

最小内存堆栈

-Xmx

2048m

最大内存堆栈

-XX:PermSize

256m

初始PermSize大小,PermGen区域,是指内存的永久保存区域,这一部分用于存放Class和Meta的信息。

-XX:MaxPermSize

512m

PermSize最大值

-XX:NewSize

1024m

新生代内存堆栈初始大小

-XX:MaxNewSize

1200m

新生代内存堆栈最大值

-XX:HeapDumpPath

指定JVM Heap dump目录(请确保存在此目录)

java.net.preferIPv4Stack

在支持 IPv4 映射地址的 IPv6 网络堆栈中,可以使用 IPv6 套接字来连接到 IPv4 和 IPv6 主机以及接受来自这些主机的连接。

jboss.modules.system.pkgs

This complicates matters for integration with other javaagents which alter the script because this property must also be set and it is not defined in the JVM what precedence is given to multiple same property settings on the command line.

java.awt.headless

启用headless模式

这些参数的功能需要自己琢磨。此外,由于JAVA_HOME 、JAVA_OPT形式export导出,可以直接通过环境变量直接设置。

nohup /opt/jbshome/jboss-eap-6.2/bin/standalone.sh
以nohup形式(对hangup信号免疫)启动脚本,然后将输出重定向指定LOG文件。后面带一堆参数(需要查看standalone.sh脚本深入理解):

jboss.server.base.dir

/opt/jbshome/appserver/Server1/

JBOSS服务的基础目录

--server-config

standalone-full.xml

指定JBOSS服务的配置文件

-b

0.0.0.0

服务绑定端口

jboss.bind.address.management

99.13.43.27

服务管理地址(一般为本机地址)

jboss.bind.address

99.13.43.27

服务绑定地址(一般为本机地址)

jboss.socket.binding.port-offset

jboss.node.name

Server1

节点名

测试:

执行脚本启动jboss实例后,就可以用ps命令查看jboss进程是否起来,也可以通过netstat命令查看监听端口是否已打开,如下:

最后,通过网页访问JBOSS服务器的8080端口测试,查看是否成功部署。

总结:熟悉Linux基本操作就可部署(权威的内容可以参考redhat官网),接下来作者将对其进行docker化部署。

Linux 下 JbossEAP 6.2安装与实例部署相关推荐

  1. mysql5.7.20linux安装,linux下 mysql5.7.20安装(精华)

    在linux 系统中mysql配置文件的读取顺序为: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 第一步 创 ...

  2. Linux下Memcache服务器端的安装

    Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...

  3. 第十章 Linux下RPM软件的安装与卸载

    第十章 Linux下RPM软件的安装与卸载 第一节 RPM软件包安装 rpm命名原则 如: vsftpd-3.0.2-9.el7.x86_64.rpm vsftpd 3.0.2 9 e17 x86_6 ...

  4. linux怎么获取当前路径,linux 下获取当前工作路径的实例

    获取工作路径这里介绍两种方法: 1.使用getcwd()函数. 头文件:#include 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcw ...

  5. Linux下oracle 9i图文安装二

    接上期的Linux下oracle 9i图文安装一([url]http://waringid.blog.51cto.com/65148/47655[/url]),下面进行Oracle安装前期准备中的第一 ...

  6. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  7. Linux下的网络远程安装

    Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 1 #mount 2 #umount /dev/cdrom 3 #mkdir ...

  8. Linux下的docker容器安装教程

    Linux下的docker容器安装教程 一.初始环境配置 1.yum仓库配置 2.检查yum仓库 3.关闭防火墙和selinux 二.开启内核的流量转发 三.安装docker 1.配置docker相关 ...

  9. Linux 下 微擎 的安装使用

    Linux 下 微擎 的安装使用 我的小站.Github 微擎 是一款基于WEB2.0(PHP+Mysql)技术架构,免费开源的公众平台管理系统,提供公众号.微信小程序.支付宝小程序.百度熊掌号.移动 ...

最新文章

  1. c语言sprt的程序怎么用,sqrt函数在c语言中怎么用?
  2. Nhibernate 3.0 cookbook学习笔记 一对多与多对多映射
  3. 42翻转单词顺序列+注意该题找单词的方法
  4. vue-cli脚手架中webpack配置基础文件详解
  5. leetcode 1217 python
  6. linux usr local权限,【linux】sudo chown -R $(whoami) /usr/local提示操作被拒绝
  7. java代码_【JAVA虚拟机(JVM)精髓】05-Java代码的执行过程
  8. C 语言实例 - 判断奇数/偶数
  9. 各大主要城市五险一金及税后工资计算器
  10. this指向,防抖函数中的fn.apply(this,arguments)作用
  11. AI反欺诈:千亿的蓝海,烫手的山芋|甲子光年
  12. 深度学习笔记--pytorch从梯度下降到反向传播BP到线性回归实现,以及API调用和手写数据集的实现
  13. 主成分分析(PCA)数学原理详解
  14. 大学计算机基础知识手写笔记,清华学霸手写笔记火了,如同“电脑打印版”,学渣快来“瞻仰”...
  15. Pycharm使用tkinter
  16. 为传统行业提供新思路,“智享沙龙—硬科技赋能传统产业升级”即将开启
  17. 【基本功】深入剖析Swift性能优化
  18. 网络安全与网站安全及计算机安全:如何使用Kali Linux进行MS08-067安全演练
  19. 集成电路封装类型有哪些?图文汇总如下
  20. linux内存管理之石器篇

热门文章

  1. HAL库开发—基于stm32的智能小家电
  2. 如何做CEdit中的Undo,Redo(和word类似的输入法输入一次为一个回退块)
  3. maven中无法下载ojdbc
  4. tensorflow导入自己的数据集
  5. 架狗屎:聊一聊 Spring Boot 服务监控机制
  6. Kotlin协程实现原理
  7. ActiveMQ 基础知识
  8. 看起来简单,实际上复杂
  9. PYNQ-Z2上手笔记之系统安装
  10. ssh 使用新法:公网(合法 ip)用户访问内网(私有 ip)服务器(http,ftp,sshd,cvs...),