中间件
环境配置
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文件
# 重启生效,出现问题的话
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映射; 并设置欢迎页面。 org.apache.catalina.ssi.SSIServlet org.apache.catalina.filters.FailedRequestFilter org.apache.catalina.ssi.SSIFilter ... ... 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. 重启服务 文章来源
发表评论