中间件

环境配置

1. jdk安装配置

卸载openjdk

# 查询系统安装的jdk

rpm -qa|grep jdk

# 卸载openjdk

rpm -e --nodeps 文件名

yum -y remove 文件名

安装jdk1.8

# 上传解压 jdk 安装包

tar -zxvf jdk-8u341-linux-x64.tar.gz

# 配置 Java 环境变量

vi /etc/profile

# 文件尾行追加以下内容

export JAVA_HOME=/opt/jdk1.8.0_341

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

# 使生效

source /etc/profile

# 验证 Java 版本

java -version

weblogic

1. 启动

bash /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh

# 登录控制台

浏览器输入:http://192.168.93.135:7001/console

2. 分发部署应用

部署 - 安装 - 上载文件 - 选择文件 - 持续下一步至完成激活更改 - 启动部署 - 测试访问

3. 创建集群

# 配置 AdminServer 后台运行

cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain

nohup ./startWebLogic.sh &

# 创建集群

- 控制台新建集群cluster:左侧“环境”--> 集群 --> 右侧“新建”--> 修改集群名称为“cluster”--> 确定 -->

左上方“激活更改”

# 新建服务器 Server-1、Server-2并加入集群

左侧“环境”--> 服务器 --> 右侧“新建”--> 修改服务器名称、服务器监听地址、服务器监听端口,并将此服

务器设置为属于集群cluster的成员 --> 下一步 --> 完成 --> 左上方“激活更改”

# 配置 Server-1 后台运行(Server-2同理)

cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin

./startManagedWebLogic.sh Server-1 t3://127.0.0.1:7001

# 配置免密登录

mkdir /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/Server-1/security

vi servers/Server-1/security/boot.properties

- username=weblogic

- password=weblogic@123

# 后台运行命令

nohup ./startManagedWebLogic.sh Server-1 t3://127.0.0.1:7001 >> Server-1.log &

# 配置选择部署到所有服务器

nginx负载均衡

1. 安装nginx

# 安装启动nginx

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm \

&& yum install -y nginx \

&& systemctl start nginx.service \

&& systemctl enable nginx.service

# 查询Nginx默认目录

whereis nginx

(1) Nginx配置路径【常用】:/etc/nginx/

(2) PID目录:/var/run/nginx.pid

(3) 错误日志:/var/log/nginx/error.log

(4) 访问日志:/var/log/nginx/access.log

(5) 默认站点目录:/usr/share/nginx/html

事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以及/etc/nginx/conf.d/default.conf 中查询到。

# 查看Nginx版本:

nginx -v

# 查看Nginx安装目录

rpm -ql nginx

2. 增加 upstream 配置

vim /etc/nginx/conf.d/weblogic.conf

# 填写

upstream backend {

server server-1ip:8001;

server server-2ip:8002;

}

server {

listen 8080;

location / {

proxy_pass http://backend;

}

}

# 增加配置后,重载配置

nginx -s reload

使用 proxy 服务的地址与监听端口访问服务,`http://192.168.93.132:8080/hello-world/`

如出现 503 类似的服务端报错,查看每台服务器的 SELINUX 是否关闭

# 查看命令。返回 Enforcing 表示开启中,需要关闭

getenforce

- Enforcing

# 永久关闭命令

setenforce 0 && sed -i 's/enforcing/disabled/g' /etc/selinux/config

weblogic性能调优方法

1. 增加 JVM 内存分配

vim /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh

# 修改 java 分配的默认内存,内存设置根据服务器可用资源分配

if [ "${JAVA_VENDOR}" = "Sun" ] ; then

WLS_MEM_ARGS_64BIT="-Xms1024m -Xmx1024m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms1024m -Xmx1024m"

export WLS_MEM_ARGS_32BIT

else

WLS_MEM_ARGS_64BIT="-Xms1024m -Xmx1024m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms1024m -Xmx1024m"

export WLS_MEM_ARGS_32BIT

fi

MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=1024m"

MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=1024m"

2. 增加 CPU 线程数

方法一、在启动命令后增加线程

bash /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh

-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=100

方法二、修改配置文件config.xml

# 修改/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml文件

AdminServer

400

400

# 重启生效,出现问题的话

ulimit -a

3. 查看线程及内存

jps -mlv

4. 后台运行

nohup 启动文件 &

# 关闭服务

kill -9 <主程序 pid>

# 或者关闭脚本

/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin stopWebLogic.sh

5. 配置免密

创建密钥文件

# 创建密钥目录

mkdir -p /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/security

# 创建密钥文件

vi servers/AdminServer/security/boot.properties

# 文件内容

username=weblogic

password=weblogic@123

# 启动

bash /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic .sh

tomcat

1. 安装及部署

解压安装

# 上传并解压

tar -zxvf apache-tomcat-9.0.65.tar.gz

# 启动

cd /opt/apache-tomcat-9.0.65/

bin/startup.sh

# 客户端访问 tomcat ,默认访问 webapps/ROOT 目录下的应用程序,

# 经测试,部署war包的话需要清空webapps,并将war包放在webapps目录下

# 清空 webapps 目录下文件

cd /opt/apache-tomcat-9.0.65/

rm -rf webapps/*

# 部署应用分成两种情况

1. 上传测试应用war包,部署至 tomcat 的 webapps 目录下

2. 直接创建html文件,需要放在webapps/ROOT 目录下

mkdir webapps/ROOT

# 去掉productName 这层路径,修改server.xml文件

vim /opt/apache-tomcat-9.0.65/conf/server.xml

加上

#docBase要改成你的项目目录。

#path为虚拟路径,访问时的路径,注意:不是根目录的,如果是其他路径比如"/test"一定要加"/"" debug建议设置为0

#reloadable设置为true

![server](/Users/renle/Documents/运行培训/笔记/中间件/server.png)

# 重启服务

bin/shutdown.sh

bin/startup.sh

# 访问测试应用地址,查看应用是否部署成功

yum安装

# 安装Tomcat

yum -y install tomcat

# 查看Tomcat是否安装成功

rpm -q tomcat

# 配置环境变量

Tomcat默认安装路径/usr/share/tomcat/

在/etc/profile配置文件中加入Tomcat环境变量

CATALINA_BASE=/usr/share/tomcat

CATALINA_HOME=/usr/share/tomcat

export JAVA_HOME PATH CLASSPATH CATALINA_BASE CATALINA_HOME

# 更改Tomcat在启动时使用的Java选项

在JAVA_OPTS行添加。 随意改变Xmx和MaxPermSize值,这些设置会影响Tomcat会使用多少内存:

JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx512m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC"

# 保存并关闭profile文件,执行如下命令生效

source /etc/profile

# 使用如下命令查看Tomcat变量

echo $CATALINA_BASE

echo $CATALINA_HOME

# 安装Tomcat管理包

1. 安装Tomcat根页面(tomcat-webapps)和Tomcat Web应用程序管理器和Virtual Host Manager(tomcat-admin-webapps)

yum install -y tomcat-webapps tomcat-admin-webapps

2. 安装在线文档(可选)

yum install -y tomcat-docs-webapp tomcat-javadoc

安装完成后,检查/usr/share/tomcat/webapps目录是否存在如下文件夹

# 配置Tomcat Web管理界面

1. 修改tomcat-users.xml的文件

vim /usr/share/tomcat/conf/tomcat-users.xml

添加:

 

 

 

 

 

# 重启Tomcat服务

systemctl restart tomcat

# 客户端访问 tomcat ,默认访问 webapps/ROOT 目录下的应用程序,

# 经测试,部署war包的话需要清空webapps,并将war包放在webapps目录下

# 清空 webapps 目录下文件

cd /opt/apache-tomcat-9.0.65/

rm -rf webapps/*

# 部署应用分成两种情况

1. 上传测试应用war包,部署至 tomcat 的 webapps 目录下

2. 直接创建html文件,需要放在webapps/ROOT 目录下

mkdir webapps/ROOT

# 重启Tomcat服务

systemctl restart tomcat

# 访问测试应用地址,查看应用是否部署成功

# 去掉productName 这层路径,修改server.xml文件

vim /usr/share/tomcat/conf/server.xml

加上

#docBase要改成你的项目目录。

#path为虚拟路径,访问时的路径,注意:不是根目录的,如果是其他路径比如"/test"一定要加"/"" debug建议设置为0

#reloadable设置为true

![server](/Users/renle/Documents/运行培训/笔记/中间件/server.png)

# 重启Tomcat服务

systemctl restart tomcat

# 启动Tomcat和无法访问原因(防火墙端口)

# 永久开放8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 重启防火墙

systemctl restart firewalld.service

2. tomcat目录

子目录说明bin命令中心(启动命令,关闭命令……)conf配置中心(端口号,内存大小……)libTomcat 的库文件。Tomcat 运行时需要的 jar 包所在的目录。logs存放日志文件。temp存储临时产生的文件,即缓存。webapps存放项目的文件,web 应用放置到此目录下浏览器可以直接访问。work编译以后的 class 文件。

bin

bin 目录用来存放 Tomcat 命令,主要分为两大类,一类是以.sh结尾的 Linux 命令,另一类是以.bat结尾的 Windows 命令。很多环境变量都在此处设置,例如 JDK 路径、Tomcat 路径等。

# 常用的 Tomcat 命令:

startup.sh/startup.bat:用来启动 Tomcat;

shutdown.sh/shutdown.bat:用来关闭 Tomcat;

catalina.bat/ catalina.bat:用来设置 Tomcat 的内存。

conf

conf 目录主要是用来存放 Tomcat 的配置文件.

# 常用到的几个文件:

server.xml 用来设置域名、IP、端口号、默认加载的项目、请求编码等;

context.xml 用来配置数据源等;

tomcat-users.xml 用来配置和管理 Tomcat 的用户与权限;

web.xml 可以设置 Tomcat 支持的文件类型;

在 Catalina 目录下可以设置默认加载的项目。

lib

lib 目录主要用来存放 Tomcat 运行需要加载的 jar 包。

logs

logs 目录用来存放 Tomcat 在运行过程中产生的日志文件,清空该目录中的文件不会对 Tomcat 的运行带来影响。

在 Windows 系统中,控制台的输出日志在 catalina.xxxx-xx-xx.log 文件中;

在 Linux 系统中,控制台的输出日志在 catalina.out 文件中,localhost_access_log.xxxx-xx-xx.txt:服务访问记录

temp

temp 目录用来存放 Tomcat 在运行过程中产生的临时文件

**webapps **

webapps 目录用来存放应用程序(也就是通常所说的网站),当 Tomcat 启动时会去加载 webapps 目录下的应用程序,我们编写的 Servlet 程序就可以放在这里。Tomcat 允许以文件夹、war 包、jar 包的形式发布应用。

work

work 目录用来存放 Tomcat 在运行时的编译文件(也即 class 字节码文件),例如 JSP 编译后的文件。清空 work 目录,然后重启 Tomcat,可以达到清除缓存的作用。

3. tomcat配置文件

简介

server.xml:Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;

web.xml:遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供包括MIME映射等默认配置信息;

context.xml:所有host的默认配置信息;

logging.properties:日志相关配置;

tomcat-users.xml:Realm认证时用到的相关角色、用户和密码等信息;Tomcat自带的manager默认情况下会用到此文件;在Tomcat中添加/删除用户,为用户指定角色等将通过编辑此文件实现;

catalina.policy:Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力,以安全模式启动Tomcat会使用这个配置

catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此文件的相关设置;

jaspic-providers.xml:用户认证配置文件

server.xml

type="org.apache.catalina.UserDatabase"

description="User database that can be updated and saved"

factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

pathname="conf/tomcat-users.xml" />

maxThreads="150" minSpareThreads="4"/>

connectionTimeout="20000"

redirectPort="8443"

executor="tomcatThreadPool" />

resourceName="UserDatabase"/>

unpackWARs="true" autoDeploy="true">

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

web.xml

Tomcat的conf目录下面的web.xml配置文件和我们平时应用中WEB-INF下面的配置web.xml功能一致,只是Tomcat下面的这个配置文件用来配置所有应用通用的配置,对所用应用生效。

配置默认servlet,Jsp处理器和一些其他的filter;

为所有的Web应用程序提供包括MIME映射;

并设置欢迎页面。

default

org.apache.catalina.servlets.DefaultServlet

debug

0

listings

false

1

jsp

org.apache.jasper.servlet.JspServlet

fork

false

xpoweredBy

false

3

ssi

org.apache.catalina.ssi.SSIServlet

buffered

1

debug

0

expires

666

isVirtualWebappRelative

false

4

cgi

org.apache.catalina.servlets.CGIServlet

cgiPathPrefix

WEB-INF/cgi

5

default

/

jsp

*.jsp

*.jspx

ssi

*.shtml

cgi

/cgi-bin/*

httpHeaderSecurity

org.apache.catalina.filters.HttpHeaderSecurityFilter

true

setCharacterEncodingFilter

org.apache.catalina.filters.SetCharacterEncodingFilter

encoding

UTF-8

true

failedRequestFilter

org.apache.catalina.filters.FailedRequestFilter

true

ssi

org.apache.catalina.ssi.SSIFilter

contentType

text/x-server-parsed-html(;.*)?

debug

0

expires

666

isVirtualWebappRelative

false

httpHeaderSecurity

/*

REQUEST

setCharacterEncodingFilter

/*

failedRequestFilter

/*

ssi

*.shtml

30

...

123

application/vnd.lotus-1-2-3

...

index.html

index.htm

index.jsp

4. 其他配置

端口操作

# 查看tomcat占用端口

1、先查看tomcat的进程号

ps -ef | grep tomcat*

后面带*号,是为了查看多个tomcat,例如tomcat6,tomcat7。

2、根据进程号查看端口号

netstat -anop | grep 15161

3、此外,还可以通过端口号,查看其所属的进程号相关信息

lsof -i:8080

# 修改默认端口

修改 /conf/server.xml文件

maxThreads="150" connectionTimeout="20000"

redirectPort="8443" />

修改线程

Executor代表了一个线程池,可以在Tomcat组件之间共享。也可以直接修改< Connector>里的参数。

# 要想使用线程池,首先需要在 Service标签中配置。

1. 修改 /conf/server.xml文件

namePrefix="catalina-exec-"

maxThreads="1000"

minSpareThreads="100"

maxIdleTime="60000"

maxQueueSize="Integer.MAX_VALUE"

prestartminSpareThreads="true"

threadPriority="5"

className="org.apache.catalina.core.StandardThreadExecutor"/>

...

2. 在Connector中指定线程池

3. 参数详解

name

注:线程池名称,用于 Connector中指定。

namePrefix

注:所创建的每个线程的名称前缀,一个单独的线程名称为 namePrefix+threadNumber。

maxThreads

注:池中最大线程数。

minSpareThreads

注:活跃线程数,也就是核心池线程数,这些线程不会被销毁,会一直存在。

maxIdleTime

注:线程空闲时间,超过该时间后,空闲线程会被销毁,默认值为6000(1分钟),单位毫秒。

maxQueueSize

注:在被执行前最大线程排队数目,默认为Int的最大值,也就是广义的无限。除非特殊情况,这个值不需要更改,否则会有请求不会被处理的情况发生。

prestartminSpareThreads

注:启动线程池时是否启动 minSpareThreads部分线程。默认值为false,即不启动。

threadPriority

注:线程池中线程优先级,默认值为5,值从1到10。

className

注:线程池实现类,未指定情况下,默认实现类为org.apache.catalina.core.StandardThreadExecutor。如果想使用自定义线程池首先需要实现 org.apache.catalina.Executor接口。

内存操作

# 查看内存配置

1、jps:查看本地正在运行的java进程和进程ID(pid)

2、jinfo pid,查看指定pid的所有JVM信息

  1)jinfo -flags pid 查询虚拟机运行参数信息。

  2)jinfo -flag name pid,查询具体参数信息,如jinfo -flag UseSerialGC 42324,查看是否启用UseSerialGC

3、jmap

  1)jmap -heap pid:输出堆内存设置和使用情况(JDK11使用jhsdb jmap --heap --pid pid)

  2)jmap -histo pid:输出heap的直方图,包括类名,对象数量,对象占用大小

  3)jmap -histo:live pid:同上,只输出存活对象信息

  4)jmap -clstats pid:输出加载类信息

  5)jmap -help:jmap命令帮助信息

# 修改内存配置

1. 打开在Tomcat的安装目录的bin文件的catalina.sh文件

vim tomcat目录/bin/catalina.sh

2. 在注释后面加上如下脚本:

#JAVA_OPTS='-Xms512m -Xmx1024m' 是设置Tomcat使用的内存的大小.

JAVA_OPTS='-Xms512m -Xmx1024m'

#XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小

JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"

3. 重启服务

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。