中间件基础运维笔记

中间件

环境配置

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文件
<server>
<name>AdminServer</name>
<self-tuning-thread-pool-size-min>400</self-tuning-thread-pool-size-min>
<self-tuning-thread-pool-size-max>400</self-tuning-thread-pool-size-max>
<listen-address/>
</server>

# 重启生效,出现问题的话
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
加上
<Context path="" docBase="jenkins" reloadable="true"></Context>
#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

添加:
<role rolename="manager"/>   
<role rolename="manager-gui"/>   
<role rolename="admin"/>   
<role rolename="admin-gui"/>   
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager"/> 

# 重启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

加上
<Context path="" docBase="jenkins" reloadable="true"></Context>
#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 配置中心(端口号,内存大小……)
lib Tomcat 的库文件。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



  
  
  
  
  
  

  
  
    
  

  
  

     
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      
      
    
    
      
    
    

      
      

      
      
        
        
      

      
      
      

        
        

        
        

        
      
    
  


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文件
<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" />

修改线程

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

# 要想使用线程池,首先需要在 Service标签中配置。
1. 修改 /conf/server.xml文件
<Service name="Catalina">  
  
  <Executor name="tomcatThreadPool"   
         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中指定线程池
   

内存操作

# 查看内存配置
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. 重启服务

你可能感兴趣的:(运维,中间件,服务器)