Tomcat多实例、负载均衡、动静分离

Tomcat多实例部署

安装jdk
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
[root@localhost ~]#cd /opt
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#tar xf jdk-8u91-linux-x64.tar.gz
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk1.8.0_91  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#mv jdk
jdk1.8.0_91/               jdk-8u91-linux-x64.tar.gz
[root@localhost opt]#mv jdk1.8.0_91/ /usr/local/
[root@localhost opt]#ls /usr/local/
bin  etc  games  include  jdk1.8.0_91  lib  lib64  libexec  sbin  share  src
[root@localhost opt]#cd /etc/profile.d/ #环境变量子配置文件
[root@localhost profile.d]#ls
256term.csh                   colorgrep.csh  flatpak.sh  less.sh        vte.sh
256term.sh                    colorgrep.sh   lang.csh    PackageKit.sh  which2.csh
abrt-console-notification.sh  colorls.csh    lang.sh     vim.csh        which2.sh
bash_completion.sh            colorls.sh     less.csh    vim.sh
[root@localhost profile.d]#vim java.sh
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

[root@localhost profile.d]#source java.sh

部署Tomcat
[root@localhost profile.d]#cd /opt
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#tar xf apache-tomcat-8.5.16.tar.gz
[root@localhost opt]#ls
apache-tomcat-8.5.16  apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#cp -a apache-tomcat-8.5.16 /usr/local/tomcat1
[root@localhost opt]#cp -a apache-tomcat-8.5.16 /usr/local/tomcat2
[root@localhost opt]#ls /usr/local/
bin  games    jdk1.8.0_91  lib64    sbin   src      tomcat2
etc  include  lib          libexec  share  tomcat1
[root@localhost opt]#vim /usr/local/tomcat2/conf/server.xml
[root@localhost opt]#cd /usr/local/tomcat2
[root@localhost tomcat2]#ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@localhost tomcat2]#cd bin
[root@localhost bin]#ls
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar

[root@localhost bin]#vim startup.sh
export CATALINA_BASE=/usr/local/tomcat2 #Tomcat存放的目录位置
export CATALINA_HOME=/usr/local/tomcat2
export TOMCAT_HOME=/usr/local/tomcat2

[root@localhost bin]#vim shutdown.sh
export CATALINA_BASE=/usr/local/tomcat2
export CATALINA_HOME=/usr/local/tomcat2
export TOMCAT_HOME=/usr/local/tomcat2

[root@localhost bin]#cd /usr/local/tomcat1
[root@localhost tomcat1]#ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@localhost tomcat1]#cd bin
[root@localhost bin]#ls
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar
[root@localhost bin]#vim startup.sh
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1
[root@localhost bin]#vim shutdown.sh
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1

[root@localhost bin]#/usr/local/tomcat1/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat1
Using CATALINA_HOME:   /usr/local/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomcat1/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]#/usr/local/tomcat2/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat2
Using CATALINA_HOME:   /usr/local/tomcat2
Using CATALINA_TMPDIR: /usr/local/tomcat2/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar
Tomcat started.

[root@localhost bin]#netstat -ltnp |grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      40828/java 
tcp6       0      0 :::8081                 :::*                    LISTEN      40885/java 
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      40828/java 
tcp6       0      0 127.0.0.1:8006          :::*                    LISTEN      40885/java 
tcp6       0      0 :::8009                 :::*                    LISTEN      40828/java 
tcp6       0      0 :::8010                 :::*                    LISTEN      40885/java 

网页输入http://192.168.65.102:8080
	   http://192.168.65.102:8081都可以出现画面

NGINX+Tomcat负载均衡、动静分离

部署Tomcat页面

Tomcat1
[root@localhost ~]#cd /usr/local/tomcat1/webapps/
[root@localhost webapps]#ls
docs  examples  host-manager  manager  ROOT
[root@localhost webapps]#mkdir mm
[root@localhost webapps]#cd mm
[root@localhost mm]#vim test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP tomcat1 page</title>
</head>
<body>
<% out.println("动态页面 1,Hello Tomcat1");%>
</body>
</html>


Tomcat2
[root@localhost mm]#cd /usr/local/tomcat2/webapps/
[root@localhost webapps]#mkdir mm
[root@localhost webapps]#cd mm
[root@localhost webapps]#vim test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP tomcat2 page</title>
</head>
<body>
<% out.println("动态页面 2,Hello Tomcat2");%>
</body>
</html>

[root@www webapps]#cd /usr/local/tomcat/webapps/
[root@www webapps]#ls
docs  examples  host-manager  manager  mm  ROOT  test1  test2
[root@www webapps]#cd mm
[root@www mm]#vim test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP tomcat3 page</title>
</head>
<body>
<% out.println("动态页面 2,Hello Tomcat3");%>
</body>
</html>

配置NGINX服务

yum安装NGINX
[root@localhost opt]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

[root@localhost yum.repos.d]# mkdir repo.bak
[root@localhost yum.repos.d]# mv *.repo repo.bak
[root@localhost yum.repos.d]# ls
repo.bak
[root@localhost yum.repos.d]# vim nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[root@localhost yum.repos.d]# yum -y install nginx
  验证中      : 1:nginx-1.24.0-1.el7.ngx.x86_64                                        1/1
已安装:
  nginx.x86_64 1:1.24.0-1.el7.ngx
完毕!

部署NGINX页面
[root@localhost ~]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# mkdir mm
[root@localhost html]# cd mm
[root@localhost html]# echo '<h1>this is nginx static web page!</h1>' >test.html
[root@localhost mm]# ls
test.html

实现动静分离

[root@localhost html]# cd /etc/nginx/
[root@localhost nginx]# vim nginx.conf
   在 #gzip  on;下一行加入
    upstream tomcat {
      server 192.168.65.101:8080 weight=1
      server 192.168.65.102:8080 weight=1
      server 192.168.65.102:8082 weight=1
    }

[root@localhost nginx]# cd conf.d/
[root@localhost conf.d]# ls
default.conf
[root@localhost conf.d]# vim default.conf
location ~* .*\.jsp$ {
       proxy_pass http://tomcat;
       proxy_set_header HOST $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

[root@localhost nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# systemctl restart nginx

负载均衡

将192.168.65.104主机的nginx.repo拷贝到192.168.65.103
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
nginx.repo  repo.bak
[root@localhost yum.repos.d]# scp nginx.repo 192.168.65.103:`pwd`
The authenticity of host '192.168.65.103 (192.168.65.103)' can't be established.
ECDSA key fingerprint is SHA256:63CrYDGmi+o9Wnfxyu+ceZXb8PaFjKl3Ob3EEWD50ag.
ECDSA key fingerprint is MD5:6e:96:3c:ab:13:8b:b9:d2:cd:34:80:46:3c:52:8e:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.65.103' (ECDSA) to the list of known hosts.
root@192.168.65.103's password:
nginx.repo                                               100%  178   134.9KB/s   00:00

192.168.65.103
[root@localhost ~]#cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo  
CentOS-CR.repo         CentOS-Media.repo      epel.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo    epel-testing.repo
[root@localhost yum.repos.d]#mkdir repo.bak
[root@localhost yum.repos.d]#mv *.repo repo.bak/
[root@localhost yum.repos.d]#ls
repo.bak
[root@localhost yum.repos.d]#ls
nginx.repo  repo.bak
[root@localhost yum.repos.d]# yum -y install nginx
  验证中      : 1:nginx-1.24.0-1.el7.ngx.x86_64                                        1/1
已安装:
  nginx.x86_64 1:1.24.0-1.el7.ngx
完毕!

104
[root@localhost yum.repos.d]# cd /etc/nginx/
[root@localhost nginx]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
[root@localhost nginx]# scp -r conf.d/ nginx.conf 192.168.65.103:`pwd`
root@192.168.65.106's password:
default.conf                                             100% 1292   324.4KB/s   00:00
nginx.conf                                               100%  804   630.6KB/s   00:00
[root@localhost nginx]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html  mm
[root@localhost html]# vim mm/test.html
<h1>this is nginx static web1 page!</h1>
[root@localhost html]# scp -r mm/ 192.168.65.103:`pwd`
root@192.168.65.106's password:
test.html                                                100%   40    12.1KB/s   00:00


103
[root@localhost yum.repos.d]# cd /usr/share/nginx/html/
[root@localhost html]# ls
50x.html  index.html  mm
[root@localhost html]# vim mm/test.html
<h1>this is nginx static web2 page!</h1>
[root@localhost html]# cd /etc/nginx/
[root@localhost nginx]#  nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost nginx]# systemctl start nginx

输入以下网址出现下图
http://192.168.65.103/mm/test.html
http://192.168.65.103/mm/test.jsp

192.168.65.105
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
nginx-1.18.0 .tar.gz  rh
[root@localhost opt]# useradd -M -s /sbin/nologin nginx
[root@localhost opt]# tar xf nginx-1.18.0\ .tar.gz
[root@localhost opt]# ls
nginx-1.18.0  nginx-1.18.0 .tar.gz  rh
[root@localhost opt]# cd nginx-1.18.0/
[root@localhost nginx-1.18.0]# ./configure --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \
> --with-stream
[root@localhost nginx-1.18.0]# make -j2 && make install
[root@localhost conf]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf  html  logs  sbin
[root@localhost nginx]# cd conf/
[root@localhost conf]# ls
fastcgi.conf            koi-utf             nginx.conf           uwsgi_params
fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default
fastcgi_params          mime.types          scgi_params          win-utf
fastcgi_params.default  mime.types.default  scgi_params.default
[root@localhost conf]# vim nginx.conf
在http上一行添加
stream {
    upstream nginx_server{
       server 192.168.65.103:80;
       server 192.168.65.104:80;
     }
     server {
        listen 80;
        proxy_pass nginx_server;
    }
}
下边的80监听端口改为8333
[root@localhost conf]# cd ..
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost sbin]# /usr/local/nginx/sbin/nginx  #启动NGINX
[root@localhost sbin]# netstat -lnpt | grep nginx
tcp        0      0 0.0.0.0:8333            0.0.0.0:*               LISTEN      5480/nginx: master
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5480/nginx: master
[root@localhost sbin]# cd ..
[root@localhost nginx]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp
[root@localhost nginx]# cd conf
[root@localhost conf]# ls
fastcgi.conf            koi-utf             nginx.conf           uwsgi_params
fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default
fastcgi_params          mime.types          scgi_params          win-utf
fastcgi_params.default  mime.types.default  scgi_params.default
[root@localhost conf]# vim nginx.conf
keepalive_timeout  0;  #修改长连接时间为0,103和104也同样修改
#keepalive_timeout  65;
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload #重启服务
105未设置页面,但是可以访问其他的静态和动态页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/257685.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF上位机开发(crc校验)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 为了验证数据传输的过程中有没有发生翻转&#xff0c;我们在传输报文的同时一般还会添加一个crc校验。对于modbus协议也是一样&#xff0c;它在数据…

Jmeter中使用py插件

-安装插件 1、下载插件jython-standalone-2.7.0.jar到jmeter的lib\ext目录下 链接&#xff1a; https://pan.baidu.com/s/13ZXtUwoQEV62M98GaIR26w 提取码&#xff1a;ioyk 2、重启jmeter&#xff0c;查看是否生效&#xff0c;如果这个语言有python的选项说明可以了&#xf…

Excel怎样统计一列中不同的数据分别有多少个?

文章目录 1.打开Excel数据表2.选择“插入”&#xff0c;“数据透视表”3.选择数据透视表放置位置4.将统计列分别拖到“行”和“数值”区间5.统计出一列中不同的数据分别有多少个 1.打开Excel数据表 2.选择“插入”&#xff0c;“数据透视表” 3.选择数据透视表放置位置 4.将统计…

【Ehcache技术专题】「入门到精通」带你一起从零基础进行分析和开发Ehcache框架的实战指南(3-储存方式)

这里写目录标题 Ehcache的存储方式堆内存&#xff08;MemoryStore&#xff09;指定可用内存Xml代码Xml代码Xml代码 驱除策略元素过期Xml代码 非堆内存&#xff08;BigMemory&#xff09;磁盘&#xff08;DiskStore&#xff09;指定可用容量Xml代码 元素过期 Ehcache的存储方式 …

PyCharm关闭项目很慢

我的版本&#xff1a; PyCharm 2023.2.5 (Professional Edition) 问题&#xff1a; 关闭项目的时候显示一直在关闭项目 &#xff08;单次解决&#xff1a;任务管理器里面杀掉PyCharm&#xff09; 解决方案&#xff1a; 在PyCharm中按下快捷键 CtrlShiftA。 输入Registry或…

python画图【01】

前提&#xff1a;使用anaconda环境&#xff0c;且安装好&#xff0c;使用的是jupyter pandas 和 matplotlib 安装教程可以参考&#xff1a;miniconda安装与使用 import pandas as pd读取xlsx表格数据 data pd.read_excel("data1.xlsx",sheet_nameSheet1) #data p…

vue内容渲染

内容渲染指令用来辅助开发者渲染DOM元素的文本内容。常用的内容渲染指令有3个 1.v-text 缺点&#xff1a;会覆盖元素内部原有的内容 2.{{}}&#xff1a;插值表达式在实际开发中用的最多&#xff0c;只是内容的占位符&#xff0c;不会覆盖内容 3.v-html&#xff1a;可以把带有标…

详细教程 - 进阶版 鸿蒙harmonyOS应用 第十二节——鸿蒙操作系统中的动画效果封装:Java和TypeScript版

简介 动画效果是开发鸿蒙应用时的一个重要功能。在这篇文章中&#xff0c;我们将详细探讨如何在鸿蒙系统中使用Java和TypeScript实现动画效果的封装&#xff0c;并提供一些代码示例。 Java版动画效果的实现 在鸿蒙操作系统中&#xff0c;我们可以使用ohos.agp.animation.Anima…

基于SSM的马病管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

MyBatis首次使用并查询数据库中表的数据

文章目录 MyBatis首次使用并查询数据库中表的数据1、传统Jdbc代码问题分析传统JDBC存在的问题 2、MyBatis框架概述3、MyBatis入门案例3.1、使用idea创建一个maven项目后&#xff0c;修改pom.xml文件中内容为&#xff1a;3.2、在src-main-resources下创建log4j.properties和myba…

APM联合gazebo进行固定翼仿真

一、事情起因 由于项目使用的是固定翼飞机&#xff0c;然后又要求使用的是APM固件&#xff0c;所以之前对PX4固件就需要从新来过。 1.1 APM的飞行模式 固定翼常见的飞行模式 MANUAL&#xff1a;手动模式 等效于不加飞控直接使用遥控器控制飞机。FBWA&#xff1a;fly by wir…

深度学习 Day19——P8YOLOv5-C3模块实现

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU&#xff08;如果设备上支持GPU就使用GPU,否则使用C…

RuoYi-Vue分离版集成MQTT客户端,超详细版

一&#xff1a;前言 1、使用场景&#xff1a;最近对接物联网开发需要集成MQTT进行消息订阅 2、前置准备&#xff1a;首先需要下载部署好MQTT服务&#xff08;推荐emqx&#xff09;&#xff0c;在我上一条博客里面有详细步骤&#xff0c;官方文档部署的也非常详细&#xff08;…

【QT】C++/Qt使用Qt自带工具windeployqt打包

基本操作 运行项目debug或者release 将运行后的可执行文件单独放到一个文件夹中 根据项目使用的kits来选择Qt的打包工具 打开工具后移动到exe文件夹下执行windeployqt xxx.exe 预览图 问题 打包后再其他电脑上运行出现下图错误 将自己电脑的这个文件拷到可执行文件夹中既…

一文读懂什么是智能工厂?

引言 在当今快速变革的制造业中&#xff0c;智能工厂如一盏明灯&#xff0c;照亮着未来生产的道路。它们不仅代表着技术的进步&#xff0c;更是制造业向前迈进的里程碑。智能工厂利用先进的技术和创新方法&#xff0c;将传统工厂转化为高度自动化、数字化和智能化的生产中心。…

SpringMVC01

SpringMVC 1. 学习⽬标2. 什么叫MVC&#xff1f;3. SpringMVC 框架概念与特点4. SpringMVC 请求流程5. Spring MVC 环境搭建6. URL 地址映射配置7. 参数绑定8. JSON 数据开发JSON普通数组步骤1:pom.xml添加依赖步骤2&#xff1a; 修改配置⽂件步骤3. 注解使⽤ 1. 学习⽬标 2. 什…

LeetCode Hot100 79.单词搜索

题目&#xff1a; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那…

[C++] 多态(下) -- 多态原理 -- 动静态绑定

文章目录 1、多态原理2、动态绑定和静态绑定3、单继承和多继承关系的虚函数表3.1 单继承中的虚函数表5.2 多继承中的虚函数表 上一篇文章我们了解了虚函数表&#xff0c;虚函数表指针&#xff0c;本篇文章我们来了解多态的底层原理&#xff0c;更好的理解多态的机制。 [C] 多态…

文件操作(下)

标题的顺序是接着之前写的&#xff0c;希望这篇博客对你有帮助 七. 随机读写函数 实际上&#xff0c;无论是读还是写&#xff0c;在一次调用顺序读写函数&#xff0c;文件指针会移到已经读过或者写过的下一个位置&#xff0c;从那个位置开始下一次读和写&#xff08;在文件没有…

Jenkins插件安装失败时这么做就搞定啦!

1.网络或墙的问题导致插件下载安装失败 这种错误提示很明显&#xff0c;就是无法连接到插件下载地址&#xff0c;导致插件下载失败。 解决方法 为Jenkins更换源 点击Jenkins主页面左侧列表中【系统管理】—— 下拉找到【管理插件】 选择【高级】选项卡 替换最下方【升级站点…