ip addr
#此命令用来查看当前的ip设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TRB42wbD-1660808317430)(./image/l-01.png)]
如果网卡配置好的话那么ens33:后边应该是初始化好的ip地址,可以看出需要进行网卡设置
修改网络初始化配置,设定网卡在系统启动时初始化
cd /etc/sysconfig/network-scripts #进入系统设置/网络配置目录下
vi ifcfg-ens33 #使用vim编辑该文件
#vim的一些基本操作
i # 进入编辑状态
光标 # 移动光标
-> :wq-> # 保存并退出
ONBOOT=no
修改为ONBOOT=yes
即可[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fu66wDiM-1660808317431)(./image/l-02.png)]
[finalShell]
这个工具,只需要简单配置ip和端口即可使用echo 'LANG="en_US.UTF-8"' >> /etc/profile #增加这一行属性
source /etc/profile #刷新环境变量
ls [-al] [dir]
# -a 显示所有文件以及目录(.开头的隐藏文件也会列出)
# -l 除了文件名意外,同时将文件形态(d表示目录,-表示文件)、权限、拥有者、文件带下等信息详细列出
# 由于我们使用ls命令经常需要加入ls选项,所以Linux为ls -l命令提供了一种简写形式,也就是ll
cat [-n] fileName
more fileName
tail [-f] fileName
,注意f可以是数字,也就是说显示末尾倒数第几条信息
rmdir [-p] dirName
rm [-rf] name
cp [-r] src dst
mv src dst
mv hello.txt hi.txt
tar [-zcxvf] fileName [files]
vi fileName
,vim fileName
yum install vim
[i,a,o]
任意一个,可以进入插入模式[ESC]
即可回到命令模式[:,/]
任意一个后,即可进入底行模式find dirName -option fileName
java -version
sh startup.sh
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
ps -ef|grep tomcat
ps -ef
可以查看当前运行的所有进程详细信息firewall-cmd --zone=public --add-port=8080/tcp --permanent
#开放8080端口
firewall-cmd --reload
#生效重启
./shutdown.sh
kill -9 pid
#pid指的是进程id 根据你查的进程号来
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
#删除指令
解压由官网得到的mysql安装包
按照顺序安装rpm软件包
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
systemctl status mysqld
:查看mysql服务状态
systemctl start mysqld
:启动mysql服务
systemctl enable mysqld
:开机自动启动mysql
netstat -tunlp
:查看已经启动的服务
netstat -tunlp | grep mysql
:查看mysql相关的服务
ps -ef |grep mysql
:查看mysql相关进程
cat /var/log/mysqld.log
cat /var/log/mysqld.log | grep password
mysql -uroot -p
:登录后输入初始密码
4s0rTe(ReH)u
set global validate_password_length=4;
set global validate_password_policy=LOW;
set password=password('password');
grant all on *.* to 'root'@'%' identified by 'password';
flush privileges;
yum(yellow dog updater,modified):是一个前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的安装包,无需繁琐地一次次下载、安装
搜索lrzsz安装包,命令为yum list lrzsz
使用yum命令在线安装,命令为yum install lrzsz.x86_64
rz
命令,将jar包上传到服务器上,然后手动启动jar包开启服务器nohup(no hang up)
:用于不挂断地运行指定命令,退出中断不会影响程序的运行nohup Command [Arg...] [&]
kill -9
的方式来终止项目,通过ps -ef
来查看目前所有的进程号,然后通过grep
来过滤在Linux中安装GIT
yum list git
,yum install git
使用Git克隆代码
在Linux中安装Maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
mvn -version
/usr/local/repo
编写Shell脚本(拉取代码、编译、打包、启动)
#!/bin/sh
echo =================================
echo 自动化部署服务器脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=helloworld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从git仓库中拉取最新代码
cd /usr/local/helloworld
echo 开始从git仓库中拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包项目
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 部署完毕
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEgpNcpl-1660808317432)(./image/l-03.png)]
执行Shell脚本
设置静态ip
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-imORmTsl-1660808317433)(./image/l-04.png)]
systemctl restart network
yum -y install gcc prce-devel zlib-devel openssl openssl-devel
tar -zxvf nginx-1.16.1.tar.gz -C /usr/local/nginx
cd /usr/local/nginx/nginx-1.16.1/
./configure --prefix=/usr/local/nginx
后边那一串是安装位置make && make install
./nginx -v
./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
./nginx
./nginx -s stop
ps -ef |grep nginx
root 102636 1 0 11:13 ? 00:00:00 nginx: master process ./nginx
nobody 102637 102636 0 11:13 ? 00:00:00 nginx: worker process
root 102802 9960 0 11:13 pts/0 00:00:00 grep --color=auto nginx
./nginx -s reload
#profile文件中追加环境变量,便于直接启动nginx,:表示分割
PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH
Nginx配置文件(conf/nginx.conf)整体分为三部分
server {
listen 80;#监听80端口
server_name localhost;#域名,服务器名称
location / {#针对80端口的所有请求,都经过此location进行处理,用来匹配客户端请求的url
root html;#根目录,默认访问该目录下的资源
index index.html index.htm;#默认的首页
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTgfCNpW-1660808317433)(./09-image/dl.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZiXcQ49-1660808317434)(./09-image/fxdl.png)]
36 listen 82;
37 server_name localhost;
38
39 #charset koi8-r;
40
41 #access_log logs/host.access.log mainet
42 location / {
43 #root html;
44 #index index.html index.htm;
proxy_pass:http://192.168.132.101:8080;#反向代理配置,将请求转发到指定服务
45 }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNlW59P4-1660808317435)(./09-image/fxdl-1.png)]
负载均衡
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能以及单点故障问题就凸显出来了,因此需要多态服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现
应用集群:将同一应用部署到多台及其上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CHRODeCz-1660808317435)(./09-image/fzjh.png)]
upstream targetserver{ #upstream指令可以定义一组服务器
server 192.168.138.101:8080;
server 192.168.138.101:8081;
}
server{#当外部来访问我们的服务的时候,就会将请求分发转发到我们所设定的targetserver上去
listen 8080;
server_name localhost;
location /{
proxy_pass http://targetserver;
}
}
名称 | 说明 |
---|---|
轮询(RR) | 默认方式 |
weight | 权重方式 |
ip_hash(同一个ip访问同一个服务器) | 依据ip分配方式 |
least_conn | 依据最少连接方式 |
url_hash | 依据url分配方式 |
fair | 依据响应时间方式 |
location / {
root html/dist;
index index.html;
}
# 配置反向代理
location ^~ /api{
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://192.168.132.128:8080;
}
[第一步]克隆代码到本地:git clone https://gitee.com/lumxi/reggie-lumxi.git
[第二步]编写shell脚本
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=reggie
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/javaapp/reggie
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
cd reggie-lumxi
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar reggie-1.0-SNAPSHOT.jar &> reggie.log &
echo 项目启动完成
[第三步]将sh脚本上传到服务器,并用chmod 777 .sh
命令修改权限运行
Stop Process…’
kill -15 $tpid
fi
sleep 2
tpid=ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'
if [ ${tpid} ]; then
echo ‘Kill Process!’
kill -9 $tpid
else
echo ‘Stop Success!’
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/javaapp/reggie
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
cd reggie-lumxi
output=mvn clean package -Dmaven.test.skip=true
cd target
echo 启动项目
nohup java -jar reggie-1.0-SNAPSHOT.jar &> reggie.log &
echo 项目启动完成
[第三步]将sh脚本上传到服务器,并用`chmod 777 .sh`命令修改权限运行
# 7. 项目开发完毕