1. 例如部署多个java应用,可以用不同端口 发布出去到外网,同一个端口会冲突
2. 可以使用nginx反向代理,内部应用只对内网监听,Nginx根据不同的访问监听代理不同的内部应用。
3. 用docker发布,docker属于容器(就是类似于虚拟化的效果了),每个docker跑不同的应用发布出去。
4. 如果物理服务器IO资源可以满足,可以直接安装vmware或者pve虚拟化去实现物理层面的虚拟化系统,从而从物理层面去发布和隔离每个应用。
部署的过程,本文只说明从一个打好包的二进制文件或jar包(这里简称服务器程序压缩文件)到这个服务器程序在所有服务器上运行的过程。这个过程,可分为如下几个阶段:
1.将服务器程序压缩文件传输到所有的服务器上
2.在所有的服务器上将服务器程序压缩文件解压到特定的路径
3.在所有的服务器上执行服务器程序
4.如果发布的服务器程序出现问题,回滚.
====================================================
这其中,涉及到如下几种需求:
1.免登陆
2.将文件从一台服务器传输到所有的服务器上,实现了这种需求,就可以将服务器程序压缩文件传输到所有的服务器上
3.在一台服务器远程执行命令,使所有的服务器都能够执行该命令,实现了这种需求,就可以在所有的服务器上将服务器程序压缩文件解压到特定的路径,并所有的服务器上执行服务器程序。
1.免登陆由于各种文章和Blog介绍较多,这里就不再涉及。
2.如何将文件从一台服务器传输到所有的服务器上
#! /bin/sh
#tf.sh
IPS=(ip地址1 ip地址2 ip地址3 ...)
for ip in ${IPS[*]}
do
do
echo "----Transfer File in $ip----"
scp $1 $ip:$2
done
3.如何在一台服务器上远程远程执行命令,是的所有的服务器都能够执行该命令
#! /bin/sh
#ec.sh
IPS=(ip地址1 ip地址2 ip地址3 ...)
for ip in ${IPS[*]}
do
do
echo "----Execute Command in $ip----"
ssh $ip $1
done
=======================================================
1.将服务器程序压缩文件传输到所有的服务器上
tf.sh /home/admin/server2.0.tar.gz /home/admin/
2.在所有的服务器上将服务器程序压缩文件解压到特定的路径
ec.sh "tar -zxvf /home/admin/server2.0.tar.gz"
3.在所有的服务器上执行服务器程序
ec.sh "sh /home/admin/server2.0/run.sh"
4. 回滚
ec.sh "sh /home/admin/server1.0/rollback.sh"
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)