linux集群架构--tomact集群2

linux集群架构–tomact集群2

接入nginx

在这里插入图片描述

[root@web03 /app/tools/tomact]#echo test >webapps/index.jsp
[root@web03 /app/tools/tomact]#curl 192.168.65.9:8080/index.jsp

在这里插入图片描述
在这里插入图片描述

  • 发现页面不对,访问的是test,返回的信息是
    在这里插入图片描述在这里插入图片描述

  • 为什么会成这样?

tomcat访问的灵异事件

访问的时候  zrlog.wulinlinux.cn:8080/zrlog/

ROOT用户访问的时候不加上路径,直接访问文件,就会访问ROOT下面的内容.

zrlog.wulinlinux.cn:8080/wulin.jsp = webapps/ROOT/wulinssw.jsp

zrlog.wulinlinux.cn:8080/wulin/wulinssw.jsp

在这里插入图片描述
在这里插入图片描述
改名–因为与数据库db01是相连的

  • 访问浏览器,这个时候安装一下zrlog
    在这里插入图片描述
    会发现现在不会在进行报错了,原因是因为没有zrlog目录
  • 数据库配置文件
[root@web03 /app/tools/tomcat/webapps/ROOT]#find -type f |xargs grep '172.16.1.51'

[root@web03 /app/tools/tomcat/webapps/ROOT]# cat
./WEB-INF/db.properties
#This is a database configuration file
#Wed jun 22 09:05:24 CST 2024

driverClass=com.mysql.cj.jdbc.Driver
user=zrlog
password=1
jdbcUrl=jdbc\:mysql\://172.16.1.51\:3306/zrlog?
characterEncoding\=UTF-8&allowPublicKeyRetrieval\=true&useSSL\=false&ser
verTimezone\=GMT
#jdbcUrl=jdbc\:mysql\://数据库地址\:3306/数据库名字?characterEncoding\UTF-8&allowPublicKEYRetrieval\=true&useSSL\=false&serverTimezone\GMT
[root@web03 /app/tools/tomcat/webapps/ROOT]#
  • zrlog.war改名为ROOT.war然后部署.
  • ngx配置文件web上的nginx,不是负载上的)
    [root@web03 ~]# find /var/cache/yum/ -type f -name “*.rpm”
    /var/cache/yum/x86_64/7/base/packages/price2-2–1.el7.ngx x86_64.rpm
    /var/cache/yum/x86_64/7/nginx-stable/packages/nginx-1.22.1.el7.ngx.x86_64.rpm

[root@web03 ~]#mkdir -p /app/rpms/
[root@web03 ~]# find /var/cache/yum/ -type f -name “*.rpm” |xargs cp -t /app/rpms/
#这里到时候安装一个内部的yum源,安装的就更快了

[root@web03 /etc/nginx/conf.d]# cat zrlog.wulinlinux.cn.conf
server {
listen 80;
server_name zrlog.wulinlinux.cn;
#思考,用户将请求发给nginx,nginx把进行发送给comact(有点类似于nginx代理

   error_log     /var/log/nginx/zrlog.wulinlinux.cn-error.log

notice;
access_log /var/log/nginx/zrlog.wulinlinux.cn-access.log main;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}
[root@web03 /etc/nginx/conf.d]#nginx -t 检查语法
[root@web03 /etc/nginx/conf.d]#systemctl enable nginx #进行开机自启动
[root@web03 /etc/nginx/conf.d]#systemctl start nginx #开启nginx

#配置解析
#浏览器访问zrlog.wulinlinux.cn网站进行管理

tomact+nginx动静分离

需要开发拆开代码,把静态资源拆分出来单独进行存放

在这里插入图片描述
在这里插入图片描述

[root@web03 /etc/nginx/conf.d]# cat  zrlog.wulinlinux.cn.conf
server {
       listen 80;
       server_name zrlog.wulinlinux.cn;
#思考,用户将请求发给nginx,nginx把进行发送给comact(有点类似于nginx代理

       error_log     /var/log/nginx/zrlog.wulinlinux.cn-error.log
notice;
       access_log /var/log/nginx/zrlog.wulinlinux.cn-access.log main;
location / {
       proxy_pass http://127.0.0.1:8080;
       proxy_set_header Host $http_host;
       proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
       }
       location ~* \.(js|html|css|png|jpg|jpeg)$ {
       expries 7d;
       #proxy_pass http://127.0.0.1:8080;
       #proxy_set_header Host $http_host;
       #proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
       }
}

[root@web03 /etc/nginx/conf.d]#nginx -t 检查语法
#访问网站,会发现一个问题

在这里插入图片描述

  • 浏览器解析,说明网站nginx出现问题
  • 重新启动nginx服务
  • 解决问题
  • 但是这种严格上来说这种拆开代码不算是真正的动静分类

#生产环境

user nginx; worker_processes 4; worker_cpu_affinity 0001 0010 0100
1000;

error_log /data/logs/nginx/error.log warn; pid /logs/nginx.pid;
worker_rlimit_nofile 65535; events {
use epoll;
workera_connections 10240; }

http {
include mime.types;
default_type application/octet-stream;

 log_format  main  '$remote-addr - $remote_user [$time_local] "$request"'
                   '$status $body_bytes_sent "$http_referer"'
                   '"$http_user_agent" "$http_x_forwarded_for"';
                   
 access_log /data/logs/nginx/access.log  main;
 
 charset utf-8;
 
 server_names_hash_bnucket_size 128;
 client_header_buffer_size   32k;
 large_client_header_buffers 4 32k;
 client_max_body_size  300m;
 sendfile  on;
 tcp_nopush     on;
 keepalive_timeout  60;
 tcp_nodelay  on;
 server_tokens off;
 client_body_buffer_size 512k;
 
 client_header_timeout   3m;
 client_body_timeout     3m;
 send_timeout            3m;
 
 ##cache##
 proxy_connect_timeout  5;
 proxy_read_timeout   5;
 proxy_send_timeout   60;
 proxy_buffer_size    64k;
 proxy_buffers 4 256k;
 proxy_temp_path /tmp/proxy_temp;
 proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=3000m;
 proxy_cache_key "$scheme$request_method$host$request_uri";
 
 ##end##
 
 gzip on;
 gzip_min_length  1100;
 gzip_comp_level 5;
 gzip_buffers   4   8k;
 gzip_types  text/xml text/plain text/css text/javascript  application/javascript application/json;
 
 #  output_buffers  1 32k;
 #  postpone_output 1460;
 
 #limit_buffers   1  32k;
 #postpone_output 1460;
 
 limit_rate_after  3m;
 limit_rate 512k;
 
 #自动补全"/”
 #if (-d $request_filename){
    #rewrite ^/([^/]$ http://$host/$1$2/ last;
    
 }
 #online server
 server {
      listen 80;
      server_name dbjyj.wulin.com www.wulin.com.cn vpn.wulin.com;
   index  index.jsp;
         proxy_set_header Host $host:$server_port;
         proxy_set_header REMOTE-HOST $remote_addr;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_cache  cache one;
         
    location ~ / {
      rewrite ^/$ http://$host:8081/online last;
    }
    ###############动静分离配置###############
    
    ###############设定访问静态文件直接读取不经过tomact###########
    location ~ \.(html|html|gif|jpg|jpeg|png|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)(.*)$

{
expries max;
}
location ~ .(js|css|jsp|json)$ {
root /data/www;
expries 1d;
}
####################动静分离-配置完成############

    location ~ .*/api/mc/custormer/deliverAddress/list.json* {
          return 404;
    }
       location ^~ /online/ {
               proxy_pass        http://10.0.0.6:8081;
               proxy_cache cache_one;
               proxy_cache_valid 200 1h;
               proxy_cache_valid 302 10m;
               proxy_cache_valid any 1m;
       }
       location ^~ /onlinethread/ {
               proxy_pass        http://10.0.0.6:8081;
               proxy_cache cache_one;
               proxy_cache_valid 200 1h;
               proxy_cache_valid 302 10m;
               proxy_cache_valid any 1m;
       }
       location ^~ /mobile/ {
               proxy_pass        http://10.0.0.6:8081;
               proxy_cache cache_one;
               proxy_cache_valid 200 1h;
               proxy_cache_valid 302 10m;
               proxy_cache_valid any 1m;
       }
 }
 #12200 server
 server {
  listen 8080;
  server_name wulin.c0m www.b-long.com.cn brainlong.gcip.net;
  proxy_set_header Host:$server_port;
  proxy_set_header REMOTE-HOST $remote_addr;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_cache  cache_one;
  
  index index.jsp;
 }
 location ~ \.(html|html|gif|jpg|jpeg|png|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)(.*)$

{root /data/www;
expries max;
}
location ~ /data/www;
expries 1d;
}

8080 ##### location ^~ /ccbs/ {

 proxy_pass  http://10.0.0.6:8080;
 proxy_cache cache_one;
 proxy_cache_valid 200 1h;
 proxy_cache_valid 302 10m;
 proxy_cache_valid any 1m; } 

console server location ^~ /console/ {

proxy_pass   http://10.0.0.6:8080;
proxy_cache cache_one;
proxy_cache_valid 200 1h; }
  • 浏览器访问

zrlog.wulinlinux.cn:8081/test.jsp
在这里插入图片描述

  • 过滤
    在这里插入图片描述

未来生产上,可以直接把tomcat+应用整体打包,使用的时候直接解压即可

Tomact监控功能

概述

  • 未来通过各种监控工具(Zabbix/Grafana/Prometheus/…),监控Tomcat/java.
  • 需要我们开启java远程监控功能(JMX remote)

步骤

  • tomcat配置中修改tomcat启动的选项.开启jmx远程监控功能.
  • 交给zbx就可以了(使用windows jdk连接tomcat).
catalina.sh文件中125后面
CATALINA_OPTSjava环境变量,指定java启动的时候的选项

[root@web03 /app/tools ~]#vim tomact/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS   \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=10.0.0.9"

[root@web03 /app/tools ~]#systemctl restart tomact
[root@web03 /app/tools ~]#ps -ef |grep java
/app/tools/jdk/bin/java -Djava.util.logging.config.file=/app/tools/tomcat/conf/logging.properties
-Diava.util.logging.manager=org.apache.juli.classLoaderLogManager 
-Djdk.tls.ephemeralDHkeysize-2048 
-Djdk.protocol .handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SeeurityListener.UMASK=8827-Dcom,sun.management.imxremote -Dcom,sun.management,imxremote,port=12345 -Dcom,sun.management.imxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server,hostname=18.0.0.9 -Dignore.endorsed.dirs= -classpath /app/toolstomcat/bin/bootstrap.iar: /app/tools/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/app/tools/tomcat -Dcatalina.home=/app/toolstomcat -Djava.io.tmpdir=/app/tools/tomcat/temp org.apache.catalina.startup.Bootstrap start
[root@web03 /app/tools ~]#ss -lntup |grep java (有两个随机端口)

在这里插入图片描述


> ```bash
> > 温馨提示:
> > 1.从tomcat 8.5开始配置的每一行要通过\进行续行
> 
> > 修改后java进程中增加了上面添加的那些选项 ```/app/tools/jdk/bin/java
>  - Djava.util.logging.config.file=/app/tools/tomcat/con f/logging.properties
>  - Djava.util.logging.manager=org.apache.juli.ClassLoad erLogManager  -Djdk.tls.ephemeralDHKeySize=2048
>  - Djava.protocol.handler.pkgs=org.apache.catalina.webr esources  -Dorg.apache.catalina.security.SecurityListener.UMASK
> =0027  -Dcom.sun.management.jmxremote  -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false  -Djava.rmi.server.hostname=10.0.0.9  -Dignore.endorsed.dirs= -classpath /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomca t/bin/tomcat-juli.jar - Dcatalina.base=/app/tools/tomcat -
> Dcatalina.home=/app/tools/tomcat -
> Djava.io.tmpdir=/app/tools/tomcat/temp
> org.apache.catalina.startup.Bootstrap start

  • 在windows下,通过jdk连接tomcat(模拟监控软件连接)

C:\Program Files\Java\jdk1.8.0_201\bin\jconsole.exe

  • 安装jdk_1.80_64bit.exe(一直选择进行下一步)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 选择不安全的连接
    在这里插入图片描述
    在这里插入图片描述
    当前jvm内存使用情况:
    在这里插入图片描述

有一个执行GC(G)这个是垃圾回收站
以上这些页面,未来使用zabbix进行监控
掌握开启监控功能

Java故障案例

Java监控命令


```bash
命令(j打头)

​        jps(jdk提供的)

​        jstack

​        jmap

脚本,执行与查看结果即可

a.jps

[root@web03 /app/tools]#jps
78900 Bootstrap
68458 plugin-core.jar
7012  jps
[root@web03 /app/tools]#ps -ef |grep jagva

jps》》 java ps命令,只显示java进程.类似于ps -ef |grep java
[root@web03 /app/tools]#jps -lvm|grep tomcat-8081

b.jstack

jstack查看java进程内部信息,线程信息.
进程:占空间,占系统资源,厂房.
线程:厂房里面的工人,处理与用户的请求.
需要代码使用多线程技术.通过ps aux查看进程是否支持线程(是否使用多线程技术)

> 先过滤出java进程的pid

查看java进程的线程信息

jstack 1786

查看java线程状态

jstack 1786 |grep -i state

[root@web03 /app/tools]#jstack --help
Usage:
    jstack [-l] <pid>pid为进程
        (to connect to running process)
    jstack -F [-m] [-l] <pid>
        (to connect to a hung process)
    jstack [-m] [-l] <executable> <core>
        (to connect to a core file)
    jstack [-m] [-l] [server_id@]<remote server IP or hostname>
        (to connect to a remote debug server)

Options:
    -F  to force a thread dump. Use when jstack <pid> does not respond (process is hung)
    -m  to print both java and native frames (mixed mode)
    -l  long listing. Prints additional information about locks
    -h or -help to print this help message							

1、新建状态New;
2、就绪状态Runnable;
3、运行状态Running;
4、阻塞状态Blocked;
5、死亡状态Dead。

c.jsp

jmap查看或导出jvm信息

查看jvm使用情况

map -heap java-pid导出java进程的jvm 内存使用情况

导出jvm内存镜像


```bash
未来生产环境该文件较大

```cjmap -dump:format=b,file=8081.hprof   1786
Dumping heap to /root/8081.hprof ...
Heap dump file created
[root@web03 ~]# ll -h 8081.hprof
-rw------- 1 root root 20M Sep 19 09:43 8081.hprof

d.mat分析工具

jvm内存映像文件,在windows/mac/ubuntu系统下通过MemoryAnalyzer Tool (MA/MAT)

1.需要jdk环境

2.软件包解压即可使用

3. MemoryAnalyzer.exe

 下载地址:https://www.eclipse.org/mat/downloads.php

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
jvm.dup/改名为jvm.hprof结尾,打开界面:
在这里插入图片描述
命令小结

​ jps-查看java进程信息(pid,进程名字),更加详细信息看ps

​ jstack-查看java线程信息,过滤线程状态

​ jmap-查看jvm内存信息(导出)

脚本

show-busy-java-thread.sh显示当前环境中,所有繁忙的java线程.以百分数显示使用率最高的前几个线程.

java应用负载高故障案例

在这里插入图片描述
排查流程小结:

  1. 通过监控服务发现系统负载高

涉及命令:zabbix,Prometheus,告警

  1. 登录到对应的节点,通过命令检查系统负载是否高

设计命令:w,uptime,top,lscpu;cpu核心总数与负载对比

  1. 真的高,定位什么导致的系统负载高

涉及命令top,ps,aux,iotop,vmstat;判断cpu,io导致的

  1. 找出原因并且找出对应的进程,需要根据进程找服务相关

根据找出的进程,查看日志信息

  1. java进程查看进程中的线程信息,

设计命令jps,jstack

  1. 导出jvm信息,通过mat工具进行分析

设计命令jmap,MA需要与开发进行一起看

java会话共享方案

在这里插入图片描述

Tomact配置https

  • 下载tomact使用证书(阿里云)
  • 修改配置文件(配置跳转)

应用建议
tomact可以支持https,可以在tomact中配置https证书。未来可以在nginx中配置证书加密,tomact未进行加密

  • tomact配置文件
 `[root@web03 /app/tools/tomcat]# mkdir cert
#部署代码包
[root@web03 /app/tools/tomcat/cert]#vim ../conf/server.xml`
[root@web03 /app/tools/tomcat/conf]# cat server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Listener
        className="org.apache.catalina.startup.VersionLogger
    Listener" />
<Listener
    className="org.apache.catalina.core.AprLifecycleList
ener" SSLEngine="on" />
    <Listener
className="org.apache.catalina.core.JreMemoryLeakPre
ventionListener" />
    <Listener
className="org.apache.catalina.mbeans.GlobalResource
sLifecycleListener" />
    <Listener
className="org.apache.catalina.core.ThreadLocalLeakP
reventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase"
auth="Container"
type="org.apache.catalina.UserDatabase"
             description="User database that can be
updated and saved"
factory="org.apache.catalina.users.MemoryUserDataba
seFactory"
             pathname="conf/tomcat-users.xml" />
</lobalNamingResources>
<Service name="Catalina">
<Connector port="8080"
protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
<Connector port="8443"  
   protocol="HTTP/1.1"
   SSLEnabled="true"
   scheme="https"
   secure="true"
keystoreFile="/app/tools/tomcat/cert/ssl.wulinlinu
x.cn.pfx"
   keystoreType="PKCS12"
   ystorePass="AGrnHD9j"  
   clientAuth="false"
   SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_
AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,T
LS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AE
S_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
<Engine name="Catalina"
defaultHost="localhost">
<Realm
className="org.apache.catalina.realm.LockOutRealm">
<Realm
className="org.apache.catalina.realm.UserDatabaseRea
lm"
              resourceName="UserDatabase"/>
</Realm>
<Host name="localhost"  appBase="webapps"
           unpackWARs="true"
autoDeploy="true">
     
<Valve
className="org.apache.catalina.valves.AccessLogValve
"
directory="logs"
              prefix="localhost_access"
suffix=".log"
              pattern="%h %l %u %t &quot;%r&quot;
%s %b &quot;%{Referer}i&quot; &quot;%{User
Agent}i&quot; &quot;%{X-Forwarded-For}i&quot;" />
</Host>
</Engine>
</Service>
</Server>

访问测试:https://ssl.wulinlinux.cn:8443
配置http-->https


说明:关于tomcat其他类型的证书格式配置  jks格式
keystoreFile="/app/tools/tomcat/cert/ssl.wulinlinux.cn.jks"
keystoreType="PKCS12" #删除这一行
keystorePass="AGrnHD9j"#密码
访问测试:https://ssl.wulinlinux.cn:8443
配置tomcat --->http8080--->ttps 8443

web.xml的在文件</welocme-file-list>后添加以下内容
<login-config>
    <!---AUTHorization setting for SSL  -->
    <auth-method<CLIENT-CERT</AUTH-method>
    <realm-name>Client Cert Users-only Area</real-name>
</login-config>
<security-constraint>
        <!--Authorization  setting for  SSL-->
        <web-resource-name>ssl</web-resource-name>
            <web-resource-name>ssl</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
              <transport-gurantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
</security-constraint>
        
[root@web03 /app/tools/tomcat/cert]#systemctl restart tomact
##做本地解析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tomcat-https小结
获取tomcat证书
​ tomcat server.xml文件8443
tomcat集群
​ nginx+tomcat
​ 与之前ngx+php https一致的

nginx中有两个结尾:

  • .pfx(公钥)
  • pfx-password.txt(私钥)

tomact:

  • .pfx(证书)
  • password(证书密码文件)

java前后端分离项目

Tomcat动静分离.提取出静态资源.

静态资源:前端(html,css,js).

后端:(Java,PHP,Python,Golang…)连接使用数据库.

前后端分离,拆分为前端部分和后端部分,一般前后端通过API接口的进行连接.

API应用程序接口:开发人员书写好的,可以直接调用的代码.使用的人员不需要关注功能如何实现的,只需要关注如何调用接口即可.

API接口在各种服务中广泛存在

前端分离

前端(静态资源)

API接口(Rest API)

后端(动态功能)
在这里插入图片描述
在这里插入图片描述
(2)数据库准备db02

#解压,环境准备
mkdir -p /app/tools/   /app/data/3306/
tax xf mysql-8.9.27-linux-glibc2.12-x86_64.tar.xz -C /app/tools/
ln -s /app/tools/mysql-8.0.27-linux-glibc2.12-x86_64/  /app/tools/mysql
yum install ncurses-devel libaio-devel openssl openssl-devel   -y

#配置文件,用户
useradd -s /sbin/nologin   -M  mysql

#设置配置文件
cat >/etc/my.cnf<<"EOF"

[mysqld]
#用户
user=mysql 
###安装目录
basedir=/app/tools/mysql/
###数据目录
datadir=/app/tools/3306/
port=3306
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
EOF

cat /etc/my.cnf
#修改配置和数据目录的所有者
chown mysql.mysql /etc/my.cnf
chown -R mysql.mysql /app/data/3306

#配置PATH环境变量
echo 'export PATH=/app/tools/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
#检查
mysql -V

初始化数据库:

mysqld --initialize-insecure --user=mysql \
--basedir=/app/tools/mysql/ --datadir=/app/data/3306/
echo $?

启动:

#拷贝已经准备好的启动管理文件
cp /app/tools/mysql/sipport-files/mysql.server   /etc/onit.d/mysqld
#开机自启动服务,运行服务
systemctl enable mysqld
systemctl start  mysqld
  • 登录
    mysql

  • 创建数据库
    #创建exam数据库,并指定字符集
    creact database exam charset utf-8mb4;

  • 添加用户

创建用户
create user exam@'172.16.1.%' identified with mysql_native_password by '1';
#授权
grant all on exam.* to exam'172.16.1.%'
#测试
mysql -uexam -p1  -h  172.16.1.523
  • 导入数据(创建表,导入数据)

mysql exam <xzs-mysql.sql

3)部署后端

mkdir -p /app/code/exam/{front,backend}

解压
cd  /app/code/exam/backend/

启动:
java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod  xzs-3.9.0.jar

说明
-Dspring.profiles.active=prod jar  包目录同层的  application-prod.yml application.yml

#配置文件内容
cat> application-prod.yml<<'EOF'
logging:
    path:/usr/log/xzs/
    
spring:
    datasource:
        url:jdbc:mysql://172.16.1.52:3306/exam?
useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertoNULL&allowPublicKeyRetrieval=true&allowMultiQueries=true
        username:exam
        password:123456
        driver-class-name:com.mysql/cj.jdbc.Driver
EOF

在这里插入图片描述
这个窗口就卡在这里了,我们不用等待,打开另外一个窗口

在这里插入图片描述

`nohup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod xzs-3.9.0.jar > start1.log 2>&1 &

  • 访问与测试后端
  • http://10.0.0.9:8000/student student 123456
  • http://10.0.0.9:8000/admin admin123456

`在这里插入图片描述

[root@web03 ~]#rz -E
rz waiting to receive.
[root@web03 ~]#unzip 
378021_ssl.wulinlinux.cn_tomact_1.zip .cache/
apache-tomact_(1).zip .cache/            .pki/
[root@web03 ~]#ll exam-web-前端/
total 0
drwxr-xr-x 4 root root   admin
[root@web03 ~]#mv exam-web-前端/* /app/code/exam/front/
[root@web03 ~]#ll /app/code/exam/front/student/
total 24
-rw-r--r-- 1 root root 169238  favicon.ico
-rw-r--r-- 1 root root 2dedf   index.html
drwxr-xr-x 6 root root 23421   static
[root@web03 ~]# vim /etc/nginx/conf.d/exam.conf

#用户
server {
    listen 80;
    server_name admin.wulinlinux.cn;
    root /app/code/exam/front/admin;
    location / {
       index index.html;
    }
    location /api/ {
        proxy_pass http://localhost:8000;
    }
}

#后台
server {
    listen 80;
    server_name student.wulinlinux.cn;
    root /app/code/exam/front/student/;
    location / {
       index index.html;
    }
    location /api/ {
        proxy_pass http://localhost:8000;
    }
}
[root@web03 ~]# nginx -t
[root@web03 ~]# systemctl reload nginx

- 本地host解析

10.0.0.9 admin.wulinlinux.cn   student.wulinlinux.cn

- 浏览器访问

student.wulinlinux.cn

在这里插入图片描述
admin.wulinlinux.cn
在这里插入图片描述

Tomact集群总结

  • java中间件、java容器
  • jvm/jre/jdk
  • 部署tomacth环境
    • jdk(openjdk)
    • tomact
  • tomact配置及目录
  • 书写tomact服务systemctl管理的配置文件
  • tomact管理端
  • tomact配置详解server.xml 虚拟主机,访问日志格式
  • 部署java应用(war包、jar包)
  • tomact与nginx组合
  • tomact监控功能:jmx如何开启
  • tomact故障:负载高–java系统负载高排坑逻辑
  • tomact会话共享,https
  • tomact优化
  • java前后端分离项目
  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值