项目部署到华为云

慕课网项目,个人觉得质量挺高

购买服务器,双11优惠力度挺高的
不用硬记linux命令,知道关键信息就可,生产你不是首发用
history | grep xxx 这个命令大多可以看到前人怎么用的,然后用记事本,nodepad等等命令改成你需要的就可以,上传文件的用ftp还有啥来着,多会两种,指不定你会的那一种出问题呢

1,部署前项目准备

1.1 前端项目

在这里插入图片描述

1.2 后端项目

mysql连接
日志路径
跨域相关

在这里插入图片描述

2,父项目打包install一下

注意:记得开放安全组端口

3,服务器环境搭建

安装JDK,mysql,redis,Tomcat

4,前端项目Tomcat启动

在这里插入图片描述
前端项目拖进去,然后直接启动bin/start.sh

5,后端项目

生产上发布:就记得一点
1,先准备个.docx记录所有准备执行的操作
2,涉及到表变更之类的,dump一个备份
3,把之前的jar包bak一份
4,运行jar包看页面,看日志
5,最好跟踪看两三天是否有异常
在这里插入图片描述
nohup java -jar xxx.jar > xxx.log & 放后台启动

6,存的一些linux安装命令,可以使用docker,很方便

============================================ifcfg-ens33==============================================================================
DEVICE     接口名(设备,网卡)
USERCTL    [yes|no](非root用户是否可以控制该设备)
BOOTPROTO  IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
HWADDR     MAC地址   
ONBOOT     系统启动的时候网络接口是否有效(yes/no)   
TYPE       网络类型(通常是Ethemet)   
NETMASK    网络掩码   
IPADDR     IP地址   
IPV6INIT   IPV6是否有效(yes/no)   
GATEWAY    默认网关IP地址
BROADCAST  广播地址
NETWORK    网络地址
 
#########start设置静态地址例子#########
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ac9b66bf-74fb-4bda-b89f-c66ff84c9571"
DEVICE="ens33"
#ONBOOT="yes"
 
#static assignment
NM_CONTROLLED=no #表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理
ONBOOT=yes #开机启动
BOOTPROTO=static #静态IP
IPADDR=192.168.59.134 #本机地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.59.2 #默认网关
DNS1=8.8.8.8
DNS2=8.8.4.4
 
#########end设置静态地址例子#########
1, 查询虚拟机UUID命令
ifconfig
uuidgen ens33

===================================================CentOS安装
#镜像下载
http://mirrors.aliyun.com/centos/7/isos/x86_64/

===================================================jdk安装
//删除openjdk
rpm -qa|grep jdk
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
rpm -qa|grep jdk
//安装jdk
mkdir /usr/java
cd /usr/java
tar -zxvf jdk-8u311-linux-x64.tar.gz
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_311
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
source /etc/profile
java -version

===================================================redis安装
/usr/app/redis-5.0.14
yum install gcc-c++
gcc -v
cd redis-5.0.14
make
make install
cp /usr/app/redis-5.0.14/redis.conf redis.conf
#启redis服务
redis-server redis.conf
#使用redis客户端连上6379端口
/root/xzh/app/redis/src/redis-cli -p 6379

#redis运维
[root@localhost ~]# ps -ef | grep redis
root      56547      1  0 00:49 ?        00:00:00 redis-server 127.0.0.1:6379
root      56625   2967  0 00:52 pts/1    00:00:00 /usr/app/redis-5.0.14/src/redis-cli -p 6379
root      56726  56667  0 00:56 pts/2    00:00:00 grep --color=auto redis

#关闭redis服务
shutdown
exit

#基本操作
set name xzh
get name
keys *

===================================================mysql安装
rpm -qa | grep mysql
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -qa|grep libaio
rpm -qa|grep net-tools
yum -y install libaio net-tools 

cd /opt
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

systemctl start mysqld.service
systemctl stop mysqld.service
systemctl status mysqld
systemctl enable mysqld.service
#查看是否自启动
systemctl list-unit-files|grep mysqld.service
#查看系统生成的临时密码
cat /var/log/mysqld.log | grep password

#重置密码
set global validate_password_policy=LOW; // 设置密码的验证强度等级为低(LOW)
set global validate_password_length=6; // 设置密码长度为6,最小为4
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;



===================================================nacos安装
上传压缩包
解压
sh /root/xzh/app/nacos/bin/startup.sh -m standalone
create database nacos
source /root/xzh/app/nacos/conf/nacos-mysql.sql

===================================================压缩包操作
tar -zxvf spark-2.4.5-bin-hadoop2.6.tgz -C /opt/
grep -v "#" redis.conf | grep -v '^$' > redis.conf.tmp
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

====================================================设置用户组
groupadd java 创建用户组
 adduser -m xzh 创建用户
usermod -a -G java xzh 用户移到指定的用户组
passwd xzh 设置密码

====================================================安装docker
#系统内核
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64

#虚拟机信息
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


=============================================安装docker
yum remove docker
#安装安装包
yum install -y yum-utils
#设置阿里云镜像地址
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cd /etc/yum.repos.d
#更新软件包索引
yum makecache timer
#安装docker相关东西
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#启动docker
systemctl start docker
systemctl stop docker
#docker版本信息
docker version

==============================================卸载docker
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
==============================================docker常用命令
#帮助文档
https://docs.docker.com/engine/reference/commandline/run/

#镜像命令
docker version
docker info       #	 
docker images -a  #查看所有镜像信息
docker images -q  #只显示镜像id
docker ps         #镜像id

#搜索镜像,网页版
https://hub.docker.com/_/mysql
#命令搜索
docker search mysql:8.0
docker pull mysql:8.0    #下载镜像,分层下载,每个版本有相同的东西
8.0: Pulling from library/mysql  #默认下载最新一个版本
32c1bf40aba1: Pull complete      #分层下载
3ac22f3a638d: Pull complete
b1e7273ed05e: Pull complete
20be45a0c6ab: Pull complete
410a229693ff: Pull complete
1ce71e3a9b88: Pull complete
c93c823af05b: Pull complete
c6752c4d09c7: Pull complete
d7f2cfe3efcb: Pull complete
916f32cb0394: Pull complete
0d62a5f9a14f: Pull complete
Digest: sha256:ce2ae3bd3e9f001435c4671cf073d1d5ae55d138b16927268474fc54ba09ed79
Status: Downloaded newer image for mysql:8.0
docker.io/library/mysql:8.0    #从此网站获取镜像
<==> docker pull docker.io/library/mysql:8.0

#####启动
docker start mysql-xzh

问题:
host不匹配,连接不上
解答:
mysql.user表的问题,把user表中user=root的host改成需要打通的host

启动docker中的mysql:
docker run --name mysql-xzh -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1111 -v /root/data:/var/lib/mysql mysql:8.0
docker exec -it 7b94cda7ffc7 bash
mysql -uroot -p1111
docker mysql密码加密问题: 2059
alter user root@localhost identified by 'password' password expire never;
alter user root@localhost identified with mysql_native_password by 'password';
flush privileges;

1, 关闭mysql服务
systemctl stop mysqld.service
2, 启动docker
systemctl start docker
3, 启动docker中mysql


====================================================================docker安装redis
docker下载image:https://hub.docker.com/_/redis
docker pull redis  --下载最新版本redis

1,redis.conf
mkdir -p docker/redis
mkdir docker/data

2, 启动redis
docker run \
-p 6379:6379 \
--name redis-xzh \
-v /docker/redis/redis.conf:/root/redis.conf \
-v /docker/redis/data:/data \
--restart=always \
-d redis redis-server /root/redis.conf

3,使用客户端连接
docker exec -it redis-xzh redis-cli

====================================================================安装rabbitmq
docker search rabbitmq:3-management
docker pull rabbitmq:3-management
docker run -d -e RABBITMQ_DEFAULT_USER=itcast -e RABBITMQ_DEFAULT_PASS=itcast --hostname mq1 --name mq -p 15672:15672 -p 5672:5672 rabbitmq:3-management




====================================================================linux内存操作
free -h
看系统,整体内存

top命令列详解
复制代码
PID        进程id
USER       进程所有者
PR         进程优先级,范围为0-31,数值越低,优先级越高
NI         nice值。范围-20到+19,用于调整进程优先级,新的进程优先级 PR(new)=PR(old)+nice,所以nice负值表示高优先级,正值表示低优先级
VIRT       进程使用的虚拟内存总量,单位 KB
RES        Resident Memory Size,进程使用的、未被换出的物理内存大小,单位 KB
SHR        共享内存大小,单位 KB
S          进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=停止 t=跟踪 Z=僵尸进程
%CPU       上次更新到现在的 CPU 时间占用百分比。注意,在多核或多 CPU 环境中,如果进程是多线程的,而 top 不是在线程模式下运行的,该值由多个核的值累加,可能会大于 100%
%MEM       进程使用的物理内存百分比
TIME+      进程使用的 CPU 时间总计,单位 1/100 秒
COMMAND    进程名称(命令名/命令行)

ps aux | sort -rn -k4 | head -10
查看最占内存的5个


==========================================================================ssh
#购买云服务器
vim /etc/ssh/sshd_config 改远程连接的Port
#查看网络连接
netstat -anpt
#linux一切皆文件
ps --> ls /proc
#释放缓存  -->以下为释放全部缓存
echo 3 > /proc/sys/vm/drop_caches

============================================================服务器使用问题
1,购买服务器都使用的默认端口,redis没设密码,让黑客有机可趁
2,一会内存满了,强制重启,杀完线程
3,ps,top命令爆出错误:/usr/bin/ps.original 内存满了
   涉及知识点:linux一切皆文件
   ps --> 遍历 ls /proc
4,删除ps.original,pstree.original,top.original       -->命令相关文件在/usr/bin目录下
   并替换ps,pstree,top文件      -->我使用的是centos8,用别的地方centos8文件做替换
扩展:
	想知道服务器有没有被拉去挖矿
	查看网络连接 netstat -napt  -->钟馗之眼 查看ip,端口
	想找到隐藏进程号:对比/proc下的进程号和ps出来的进程号
	以下.py脚本可以帮忙寻找

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os

def get_max_pid():
    out = os.popen('cat /proc/sys/kernel/pid_max')
    content = out.readline().strip('
')
    if content.isdigit():
        return int(content)

def get_ps_proc_list():
    pid_list = []
    out = os.popen('ps -e --no-header')
    lines = out.readlines()
    for line in lines:
        parts = line.split(' ')
        for part in parts:
            if part == '':
                parts.remove(part)

        pid = int(parts[0])
        pid_list.append(pid)

    return pid_list


def get_ps_lwp_list():
    lwp_list = []
    out = os.popen('ps --no-header -eL o lwp')
    lines = out.readlines()
    for line in lines:
        tid = int(line)
        lwp_list.append(tid)

    return lwp_list


def print_badpid_info(pid):
    out = os.popen('ls -l /proc/%d/exe' % pid)
    lines = out.readlines()
    print(lines)


def main():
    max_pid = get_max_pid()
    print('max pid is %d' % max_pid)
    if max_pid < 0 or max_pid > 50000:
        return

    ps_pid_list = get_ps_proc_list()
    ps_lwp_list = get_ps_lwp_list()

    self_pid = os.getpid()
    for pid in range(2, max_pid):

        #print("handle pid: %d" % pid)

        if pid == self_pid:
            continue

        if pid in ps_pid_list or pid in ps_lwp_list:
            continue

        if not os.path.exists('/proc/' + str(pid)):
            continue

        print("found process not in ps list: %d" % pid)

        print_badpid_info(pid)

if __name__ == '__main__':
    main()
	
==================================chmod
            r        w        x
二进制代表 100      010      001
十进制代表 4         2        1


==================================安装Kubernetes 
#安装
curl -LO https://storage.googleapis.com/minikube/releases/1.24.0/minikube-latest.x86_64.rpm
rpm -Uvh minikube-1.24.0.x86_64.rpm

#指定国内镜像下载地址,阿里云
minikube start --image-mirror-country='cn'
minikube start --force --image-mirror-country='cn'
#以root用户在docker启动  --没创建其他用户
minikube start --force=docker
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码style

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值