例如推荐配置4核16G,最低配置2核4G(根据系统部署需要的配置及部署项目的数量进行选择)
云服务器的存放模式需要向云平台供应商(阿里云、腾讯云等)需要采购云服务器。且需要每年都支付费用,不然系统将无法使用
本地系统数据则存放本地则需要采购服务器硬件,一般是电脑主机即可,成本较低。如果硬件使用没有问题,后期可以不用产生其他费用,不受服务商约束。但需要提到的一点是,本地服务器需要专人维护,包含硬件的维修、网络的连接
云服务器存放形式:数据全部存储在云端服务器,有专业的云平台供应商进行托管维护。除了己方进行维护外,提供软件产品的供应商也有责任进行云服务器的维护,保障客户数据的数据安全。同样的,云服务器支持数据实时同步备份之外,也可支持手动备份,备份数据也放在云端,为数据安全提供双重保障
本地服务器存放数据:数据存放在本地硬盘中,排除人为拷贝、中病毒等情况以外,基本上不存在数据泄露的问题。不需要连接互联网就能访问,别人无法通过远程方式等任何方式对数据进行盗取和复制。但是这种储存方式对服务器的硬件要求很高,如果本地服务器损坏或者数据丢失就无法找回
云服务器:提供专属售后服务人员,包括线上咨询、电话沟通、远程演示等多渠道方式进行问题处理。从效率上来说的话,线上反馈及时响应,无需赶赴客户现场,直接通过客户反馈排查原因并进行处理
本地服务器:基本不涉及到后续服务,也就不产生维护费。当然了,如果产品需要升级或者维护,则是需要收取维护费
依托云服务器的软件产品无需下载安装,访问专属网址即可。换电脑也不用担心设置匹配的问题,而导致的系统不可用。同时,软件系统使用不受地域限制,出差、居家办公均可。在这这类的软件产品能够快速新增项目,对于有多项目、异地协同办公需求的企业更加适合。
本地服务器依托的单机版软件则需要下载安装包,更换电脑需要重新下载。且只能在局域网内办公。不过这对于单项目管理、不涉及到出差或是领导不喜欢查看报表的企业来讲,影响也比较有限。
有线网:
无线网:
要确定网线规格等
了解网络带宽和服务器支持的带宽,是千兆网络还是百兆网络,是否需要交换机等
确定是否为Linux系统,如果确定需要安装Centos7版本,确定服务器是否安装图形化工具,若没有需要安装
[root@izbp14rfm2unhhkkc0bpgwz ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
[root@izbp14rfm2unhhkkc0bpgwz ~]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5501
Server version: 5.7.26 MySQL Community Server (GPL)
[root@izbp14rfm2unhhkkc0bpgwz nginx]# sbin/nginx -v
nginx version: nginx/1.17.5
[root@izbp14rfm2unhhkkc0bpgwz nginx]# cd /usr/local/redis/bin/
[root@izbp14rfm2unhhkkc0bpgwz bin]# ./redis-server -v
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=73d8617d1a0599be
[root@izbp14rfm2unhhkkc0bpgwz bin]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
Go version: go1.10.3
Git commit: 0be3e21/1.13.1
Built: Fri Mar 19 13:57:09 2021
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-204.git0be3e21.el7.x86_64
Go version: go1.10.3
Git commit: 0be3e21/1.13.1
Built: Fri Mar 19 13:57:09 2021
OS/Arch: linux/amd64
Experimental: false
//1、创建jdk目录
mkdir -p /usr/local/java
cd /usr/local/java
//2、解压
tar -zxvf jdk-8u144-linux-x64.tar.gz
//3、配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
//保存
:wq
//4、重新载入配置文件
source /etc/profile
//5、测试
java -version
#1、官网下载
https://redis.io/download/
#2、利用xftp将压缩包放到linux中
#3、解压压缩包
tar -zxvf redis.tar.gz
#4、进入目录,安装需要的gcc环境
yum install gcc-c++
make
#5、进入/usr/local/bin目录,将redis.conf文件放在自己的目录上,使用自己的配置文件启动
cp /usr/local/redis/redis.conf bconfig/
#6、redis默认不是后台启动,修改配置文件
将 daemonize no 改成yes
#7、启动redis服务
redis-server bconfig/redis.conf
redis-cli -p 6379
#8、测试
ping
#结束redis进程
shutdown
exit
#设置密码
config set requirepass [dtsum123456]
# 1、下载安装包
https://nginx.org/en/download.html
# 2、解压安装包
tar -zxvf nginx-1.20.0.tar.gz
# 3、安装nginx需要的依赖
yum install -y gcc-c++
yum install pcre-devel zlib zlib-devel openssl openssl-devel
# 4、进入nginx目录,执行configure文件
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
# 5、安装nginx
make
make install
# 6、 修改配置文件的端口
vim /usr/local/nginx/conf/nginx.conf
# 7、如果没有logs文件,需要增加一个logs文件夹并授权
mkdir logs
chmod 700 logs
# 8、进入sbin,启动nginx
./nginx
# 9、测试
curl localhost:[对应端口]
# 安装步骤
# 1、卸载旧版本docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2、docker环境安装
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、设置镜像仓库(阿里云)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast
# 4、安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
# 5、启动测试docker
systemctl start docker
docker run hello-world
#6、如果镜像拉取过慢
# 修改 daemon.json,若是没有该文件则创建
sudo vim /etc/docker/daemon.json
# 添加 registry-mirrors
{
"registry-mirrors": ["https://registry.docker-cn.com","https://hub-mirror.c.163.com","https://docker.m.daocloud.io"]
}
//docker-compose安装
//1、下载最新版的docker-compose文件
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
//2、添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
//3、测试
docker-compose --version
//1、创建文件夹
mkdir -p /docker/mysql/data
mkdir -p /docker/mysql/logs
mkdir -p /docker/mysql/conf
touch /docker/mysql/conf/my.cnf
mkdir -p /docker/redis/data
mkdir -p /docker/redis/conf
touch /docker/redis/conf/redis.conf
mkdir -p /docker/rabbitmq/conf
mkdir -p /docker/rabbitmq/data
mkdir -p /docker/nginx/logs
mkdir -p /docker/nginx/conf
touch /docker/nginx/conf/nginx.conf
touch /docker/nginx/conf/default.conf
mkdir -p /docker/nginx/www/
//2、拉取镜像
docker pull mysql:5.7
docker pull nginx:latest
docker pull redis:latest
docker pull rabbitmq:latest
//3、编写 docker-compose.yml
vim /docker/docker-compose.yml
version: '3'
services:
mysql:
image: mysql:5.7
restart: always
container_name: mysql57
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: database
TZ: Asia/Shanghai
ports:
- 3306:3306
volumes:
- /docker/mysql/data:/var/lib/mysql
- /docker/mysql/logs:/var/log/mysql
- /docker/mysql/conf/my.cnf:/etc/mysql/my.cnf
command:
--default-time-zone='+8:00'
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--max_connections=1000
--lower_case_table_names=1
--max_allowed_packet=128M
--innodb_lock_wait_timeout=500
redis:
image: redis:latest
restart: always
ports:
- 6379:6379
networks:
- front-ms
privileged: true
environment:
- "TZ=Asia/Shanghai"
container_name: redis
volumes:
- /docker/redis/data:/data
- /docker/redis/conf/redis.conf:/etc/redis/redis.conf
command: redis-server --requirepass 123456 --appendonly yes
logging:
driver: json-file
options:
max-size: "100m"
max-file: "2"
rabbitmq:
restart: always
image: rabbitmq:latest
container_name: rabbitmq
hostname: rabbit
ports:
- 5672:5672
- 15672:15672
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- /docker/rabbitmq/data:/var/lib/rabbitmq
- /docker/rabbitmq/conf:/etc/rabbitmq
nginx:
image: nginx:latest
restart: always
container_name: nginx
privileged: true
ports:
- 18080:80
- 443:443
volumes:
- /docker/nginx/logs:/var/log/nginx/
- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /docker/nginx/www/:/usr/share/nginx/html/
command: /bin/bash -c "nginx -g 'daemon off;'"
logging:
driver: json-file
options:
max-size: "100m"
max-file: "2"
# 连接外部网络
networks:
front-ms:
driver: bridge
//4、mysql配置文件
vim /docker/mysql/conf/my.cnf
[mysqld]
datadir=/var/lib/mysql
default-storage-engine=INNODB
character_set_server=utf8
symbolic-links=0
pid-file=/var/run/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
default-time_zone = '+8:00' #解决时区问题
# 设置查询数据包大小 50M
max_allowed_packet=104857600
# 表名大小写不敏感
lower_case_table_names=1
#join buffer 缓冲区
join_buffer_size=32M
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
//5、redis配置文件
vim /docker/redis/conf/redis.conf
//只挑选了部分重要配置讲解
#bind 127.0.0.1 //注释掉,不然redis只能本地访问
requirepass 123456
protected-mode no //默认yes,开启了保护模式,只能本地访问
daemonize yes //默认no,改为yes 以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 //数据库个数(可选),我修改了这个只是查看是否生效
dir ./ //输入本地redis数据库存放文件夹(可选)
port 6379
appendonly yes //redis持久化(可选)
//6、nginx配置文件(只写了http的,https需要获取nginx的ssl证书)
vim /docker/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;
# 开启动态压缩
gzip on;
gzip_min_length 2k;
gzip_disable msie6;
gzip_types text/css text/javascript application/javascript image/png image/jpeg image/gif;
#web
server {
listen 80;
server_name 192.168.1.1;
#后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问
location ^~ /jinta {
# Nginx解决浏览器跨域问题
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
proxy_pass http://127.0.0.1:8086/jeecg-boot/;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
}
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
location / {
root /usr/share/nginx/html/dist/;
index index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
# Nginx解决浏览器跨域问题
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
}
error_page 502 500 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
//7、启动docker
cd /docker
docker-compose up -d
#查看端口开启情况
#查看开启的端口,如果是阿里云,需要配置安全组规则
firewall-cmd --list-ports
# 查看firewall服务状态
systemctl status firewalld
# 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙服务,让开启的端口生效
systemctl restart firewalld.service
#查看端口占用情况,若没有输入则没有占用
lsof -i:[端口]
netstat -tunlp ——查看所有端口
netstat -tunlp | grep [端口号] ——查看端口占用情况
#区别:netstat无权限控制,lsof有权限控制,只能看到本用户
小程序开发前,需要去注册一个小程序账号
微信小程序:https://mp.weixin.qq.com/
如果是在客户的云服务器上,需要提醒客户购买防护套餐
如果是在公网上,需要下载ClamAV 等防护Linux服务器的防病毒软件
如果是在内网上,则不容易出现这些问题
在服务器开机后需要自动启动项目、自动启用项目环境等
这个我写过了,链接如下:
https://blog.csdn.net/weixin_52796198/article/details/132580922
这个我也已经写过了,链接如下:
https://blog.csdn.net/weixin_52796198/article/details/132578266
systemctl enable docker.service
vim /etc/rc.d/rc.local
//添加以下一行
/usr/local/nginx/sbin/nginx
//保存后修改可执行权限
chmod +x /etc/rc.d/rc.local
看了一下,这个我之前也写过,链接如下:
https://blog.csdn.net/weixin_52796198/article/details/131216811
#1、在主服务器A上添加ssh公匙
ssh-keygen -t rsa
#回车直至完成,会在用户目录/root/.ssh/产生两个文件:id_rsa,id_rsa.pub
#2、将id_rsa.pub文件的内容拷贝到备份服务器B的/root/.ssh/authorized_keys里
#vim /root/.ssh/id_rsa.pub
scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
#完成这一步后,从服务器A复制到服务器B就不需要密码了
#3、在备份服务器B上创建被传输的目录
mkdir -p /backup/sanlong/mysql
#4、进入一个目录,用于编写备份mysql的脚本(尽可能放在备份文件附近,比较好找)
cd /docker/mysql/backupsql
#5、创建备份sh
vim backup.sh
#以下为脚本内容,自行根据服务器修改
#!/bin/bash
#备份路径
BACKUP=/docker/mysql/backup/sql
#当前时间
DATETIME=$(date +%Y-%m-%d)
echo "===备份开始==="
echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql"
#数据库地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=123456
#创建备份目录
#[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"
#后台系统数据库
DATABASE=dtsum-boot
echo $DATABASE-$DATETIME
#mysqldump -u${DB_USER} -p${DB_PW} --single-transaction --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATABASE-$DATETIME.sql.gz
docker exec mysql57 mysqldump -h localhost -u${DB_USER} -p${DB_PW} ${DATABASE} | gzip > /${BACKUP}/$DATABASE-$DATETIME.sql.gz
echo "===导出成功,开始传输==="
#压缩成tar.gz包
cd $BACKUP
#tar -zcvf $DATETIME.tar.gz $DATETIME
#备份到服务器B
scp $DATABASE-$DATETIME.sql.gz [email protected]:/backup/sanlong/mysql
#删除备份目录
#rm -rf ${BACKUP}/$DATETIME
#删除10天前备份的数据,这边可以自行更改
#find $BACKUP -mtime +10 -name "*.gz" -exec rm -rf {} \;
echo "===数据库备份到服务器成功==="
#6、保存sh
:wq
#7、编写cron脚本
crontab -e
#输入内容(这边代表每天0点备份)
0 0 * * * sh /docker/mysql/backupsql/backup.sh
#8、保存cron
:wq
#9、重启cron服务
service crond restart
#或
/bin/systemctl restart crond.service
①在某个地方建一个backup目录,并创建backup.bat
②编辑backup.bat
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" #使用日期做文件名
set "host=127.0.0.1%"
set "port=3306"
set "username=root"
set "password=root"
set "database=vhr"
set "route=e:\backup"
mysqldump -h%host% -P%port% -u%username% -p%password% %database% > %route%\%database%-%Ymd%.sql
@echo on
③启动定时任务,搜索taskschd.msc
④创建基本任务
⑤选择触发频率
⑥选择编写的脚本,完成
①在windows本地备份完成的基础上进行多机备份
②设置备份电脑的共享权限
③启动文件共享、关闭密码要求
④设置mysql备份目录为共享文件夹
⑤在其他电脑上尝试访问该共享文件夹,在点击共享后会弹出一个框复制就好了
//如果没有复制,假设我这边ip是192.168.1.1,直接访问
\\192.168.1.1\backup即可访问
⑥在新电脑上选择一个目录存放备份信息
//1、我这边选取了d:\backup\mysql为例
//2、在d:\backup目录下编写脚本,创建copy.bat
@echo off
xcopy \\192.168.1.1\backup D:\backup\mysql /y /e /i /q
@echo on
⑦创建copy脚本的定时
搜索输入taskschd.msc,按照之前的步骤创建定时任务,这边需要注意开始的时间保证在sql备份之后,例如5点开始备份,等5点05等他备份完了再copy过来
确定客户系统的系统过期时间
自己负责的客户服务器要编写维护文档,放于项目维护文档中
在文档中必须要写清楚