Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Tomcat_02_应用部署

Tomcat_02_应用部署

作者头像
Cyylog
发布于 2020-08-19 02:54:12
发布于 2020-08-19 02:54:12
75700
代码可运行
举报
文章被收录于专栏:Cyylog技术Cyylog技术
运行总次数:0
代码可运行
6、WEB站点部署

上线的代码有两种方式:

第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了。

第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。

1、使用war包部署web站点
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 webapps]# pwd
/application/tomcat/webapps
[root@web03 webapps]# wget http://10.0.0.1/apache/tomcat/memtest.war

站点主动解压部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 webapps]# ls
docs  examples  host-manager  logs  manager  memtest  memtest.war  ROOT

浏览器访问:

http://10.0.0.17:8080//memtest/meminfo.jsp

2、自定义默认网站目录

上面访问的网址为 http://10.0.0.3:8080/memtest/meminfo.jsp

现在想访问格式为http://10.0.0.3:8080/meminfo.jsp

方法一

将meminfo.jsp或其他程序放在tomcat/webapps/ROOT目录下即可。因为默认网站根目录为tomcat/webapps/ROOT

方法二

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 ~]# vim /application/tomcat/conf/server.xml +125
…… #添加上这两行
        <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
        <Context path="/40team" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
……

修改配置文件后,要重启服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 ~]# /application/tomcat/bin/shutdown.sh 
[root@web03 ~]# /application/tomcat/bin/startup.sh
3、部署开源站点(jpress)

jpress官网:http://jpress.io

下载地址:https://github.com/JpressProjects/jpress

​ 第一个里程碑:安装配置数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install mariadb-server
systemctl start mariadb.service

​ #配置数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql
create database jpress DEFAULT CHARACTER SET utf8;
grant all on jpress.* to jpress@'localhost' identified by '123456';
exit

​ 第二个里程碑:jpress站点上线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 webapps]# pwd
/application/tomcat/webapps
[root@web03 webapps]# wget http://10.0.0.1/apache/tomcat/jpress-web-newest.war

​ 第三个里程碑:浏览器访问

浏览器访问: http://10.0.0.17:8080/jpress-web-newest/install

填写数据库信息

设置站点名称等

安装完成

重启tomcat服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 ~]# /application/tomcat/bin/shutdown.sh 
[root@web03 ~]# /application/tomcat/bin/startup.sh
7、Tomcat多实例配置

虚拟主机:nginx 多个Server标签(域名,ip,端口) 进程数量固定 master+worker

多实例(多进程):同一个程序启动多次,分为两种情况:

第一种:一台机器跑多个站点;

第二种:一个机器跑一个站点多个实例,配合负载均衡

1、复制程序文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /application/tools/
tar xf apache-tomcat-8.0.27.tar.gz
cp -a apache-tomqcat-8.0.27 tomcat8_1
cp -a apache-tomcat-8.0.27 tomcat8_2

修改端口,以启动多实例。多实例之间端口不能一致

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml
[root@web03 application]# diff tomcat8_1/conf/server.xml tomcat8_2/conf/server.xml
22c22
< <Server port="8011" shutdown="SHUTDOWN">
---
> <Server port="8012" shutdown="SHUTDOWN">
67c67
<          Define a non-SSL/TLS HTTP/1.1 Connector on port 8081
---
>          Define a non-SSL/TLS HTTP/1.1 Connector on port 8082
69c69
<     <Connector port="8081" protocol="HTTP/1.1"
---
>     <Connector port="8082" protocol="HTTP/1.1"
75c75
<                port="8081" protocol="HTTP/1.1"
---
>                port="8082" protocol="HTTP/1.1"

   将配置好的tomcat程序打包,以备之后使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar zcf muti_tomcat8.tar.gz ./tomcat8_1 ./tomcat8_2

启动tomcat多实例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/application/tomcat8_1/bin/startup.sh 
/application/tomcat8_2/bin/startup.sh

检查端口是否启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@web03 tomcat8_1]# netstat -lntup |grep java
tcp6   0   0 127.0.0.1:8011    :::*    LISTEN   31906/java
tcp6   0   0 127.0.0.1:8012    :::*    LISTEN   31932/java
tcp6   0   0 :::8080           :::*    LISTEN   31812/java
tcp6   0   0 :::8081           :::*    LISTEN   31906/java
tcp6   0   0 :::8082           :::*    LISTEN   31932/java
tcp6   0   0 127.0.0.1:8005    :::*    LISTEN   31812/java
tcp6   0   0 :::8009           :::*    LISTEN   31812/java

将每个实例的网页进行区分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo 8081 >>/application/tomcat8_1/webapps/ROOT/index.jsp 
echo 8082 >>/application/tomcat8_2/webapps/ROOT/index.jsp
2、在浏览器访问,进行测试

检查多实例的启动

http://10.0.0.17:8082

http://10.0.0.17:8081

8、tomcat反向代理集群
1、负载均衡器说明
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lb01 ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@lb01 ~]# uname -a
Linux lb01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@lb01 ~]# getenforce 
Disabled
[root@lb01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.

负载均衡软件使用nginx,详情参照

http://www.cnblogs.com/clsn/p/7750615.html

2、配置负载均衡器

备份原配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mv  /application/nginx/conf/nginx.conf{,.20171127}
    egrep -v '#|^$' /application/nginx/conf/nginx.conf.default  > /application/nginx/conf/nginx.conf

​ 配置文件内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lb01 ~]# cat /application/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream web_pools {
        server 10.0.0.17:8081;
        server 10.0.0.17:8082;
    }

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.jsp index.htm;
        proxy_pass http://web_pools;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

​ 配置完成后重启nginx服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/application/nginx/sbin/nginx  -s stop 
/application/nginx/sbin/nginx
3、使用命令进行访问测试

使用curl 命令进行测试,tail进行关键字提取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lb01 ~]# curl -s 10.0.0.5|tail -1
8081
[root@lb01 ~]# curl -s 10.0.0.5|tail -1
8082

使用curl 命令进行测试,awk进行关键字提取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lb01 ~]# curl -s 10.0.0.5|awk 'END{print}'
8082
[root@lb01 ~]# curl -s 10.0.0.5|awk 'END{print}'
8081

使用curl 命令进行测试,sed进行关键字提取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@lb01 ~]# curl -s 10.0.0.5|sed -n '$p'
8082
[root@lb01 ~]# curl -s 10.0.0.5|sed -n '$p'
8081
4、在浏览器上进行访问测试

​ 建议使用google浏览器chrome 的隐身模式进行访问,使用ctrl+f5 进行强制刷新

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s运维命令大全
k8s常用命令 node 查看服务器节点 kubectl get nodes 查看服务器节点详情 kubectl get nodes -o wide 节点打标签 kubectl label nodes <节点名称> labelName=<标签名称> 查看节点标签 kubectl get node --show-labels 删除节点标签 kubectl label node <节点名称> labelName- pod 查看pod节点 kubectl get pod 查看pod节点详情 kubectl g
ruochen
2021/12/04
5K0
目前为止最全的Kubernetes最新版核心命令
将自己多年的k8s操作命令做了笔记贡献出来,希望能帮到各位! #查看所有namespace的pods运行情况 kubectl get pods --all-namespaces #查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system # 查看pods具体信息 kubectl get pods -o wide kubernetes-dashboard-
IT运维技术圈
2022/06/26
4670
kubernetes集群搭建(8):常用命令
kubectl create -f xxxx.yaml            #创建rc、deploy、svc等        
肖哥哥
2018/08/02
3440
kubectl 常用命令指南
Kubectl 命令是操作 kubernetes 集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握
星哥玩云
2022/07/25
1.4K0
kubectl 常用命令指南
K8S 基础操作命令
#基础命令 kubectl get po/svc/cm/rc : 查看容器 kubectl describe po name :查看详情 kubectl delete po name :删除资源 -o wide : 多显示几列信息 --all-namespaces : 所有命名空间 -n name : 指定命名空间(default可以不带此参数) kubectl apply/create -f aaa.yaml : 执行yml文件 kubectl exec 容器名称 -it -- bash : 进入容器
问天丶天问
2018/06/13
1.3K0
Kubectl 常用命令大全
更详细用法参见:http://docs.kubernetes.org.cn/468.html
YP小站
2020/06/04
15.8K0
Kubectl 常用命令大全
Kubernetes(k8s)-常用命令(kubectl命令)
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
运维小路
2025/03/03
1180
Kubernetes(k8s)-常用命令(kubectl命令)
Kubernetes 经典命令
如果想玩玩单机版、集群版 k8s,可参见:基础设施服务k8s快速部署之HA篇,快速助力部署 k8s,还没毕业的都可以部署哟!
程序猿Damon
2020/05/21
1.5K0
云原生--kubectl 命令全汇总
kubectl 命令是操作 Kubernetes 集群的最直接和最高效的途径,这个60多 MB 大小的二进制文件,到底有啥能耐呢?
IT运维技术圈
2022/10/24
9450
kubectl
Kubernetes 的清单文件可以使用 json 或 yaml 格式定义。可以以 .yaml、.yml、或者 .json 为扩展名。
分母为零
2019/07/04
2.2K0
K8S Resource Management
在Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。
杨不易呀
2023/11/11
1.1K0
kubernetes 权威指南学习笔记(3) -- kubectl
根据<directory>目录下所有.yaml、.yml、。json 文件定义进行创建操作
solate
2019/07/22
4880
【TKE】容器问题排错常用命令
有时候我们想要查看下容器内部的一些东西,但是无奈容器没有shell 执行环境,比如想看看 coredns 容器中 /etc/resolv.conf 的内容是否正确继承了节点的配置,比较简单的操作步骤如下(以 docker 运行时为例):
Jokey
2021/04/30
8950
k8s kubectl 常用命令
kubectl get pod --all-namespaces # 更多pod相关的信息 kubectl get pod -o wide --all-namespaces # 更多svc相关的信息 kubectl get svc -o wide --all-namespaces kubectl get svc --all-namespaces kubectl get svc -n kubernetes-dashboard # 命名空间下的所以资源 kubectl -n kubernetes-dashbo
崔哥
2022/05/25
2430
k8s(kubernetes) 常用命令
要以特定格式将详细信息输出到终端窗口,可以将 -o 或 --output 参数添加到支持的 kubectl 命令
玖柒的小窝
2021/09/13
5.2K0
Kubernetes—资源管理
在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。
Alone-林
2022/11/22
1.5K0
Kubernetes—资源管理
干货 | kubectl 常用命令集锦(一)
可以通过 --all-namespaces 获取 k8s 集群所有的 serivce 列表:
create17
2022/11/17
1.5K0
Kubernetes K8S之kubectl命令详解及常用示例
1、command:指定在一个或多个资源上要执行的操作。例如:create、get、describe、delete、apply等
踏歌行
2020/10/15
20.9K0
n2-kubernetes操作命令详细一览
描述:该命令是安装K8s后的基础命令可以进行K8s主或者从节点的初始化,以及节点加入管理;
全栈工程师修炼指南
2020/10/23
8510
Kubernetes之kubectl常用命令:故障排查和故障解决
version命令用于确认客户端和服务器侧的版本信息,不同的版本的情况变化可能很大,所以故障排除时首先也需要确认的是现场环境的版本信息。从下面可以清楚地看到,本文验证时所使用的版本为1.11.2
菲宇
2019/06/12
3.3K0
相关推荐
k8s运维命令大全
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验