1、创建yum服务端
创建挂载目录
mkdir /mnt/cdrom
sftp上传CentOS-7-x86_64-DVD-2009.iso文件到/data/install-page目录
挂载ISO文件到/mmt/cdrom目录
mount -t iso9660 CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom
备份原yum配置文件
cd /etc/yum.repo/
mkdir yum-backup
mv * yum-backup
创建yum配置文件
vi myiso.repo
[c7-media]
name=CentOS-$releasever - Media
#这里的IP根据现场的yum源决定
#baseurl=http://192.168.1.1/yum
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
用wq保存退出
清除yum缓存并创建新缓存
yum clean all
yum makecache
测试yum源
yum list
配置http访问yum服务端文件
cd /data/nginx/conf.d/
vi web.conf
location /yum {
alias /mnt/cdrom/;
index index.html index.php index.htm;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 20m;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 50;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}
用wq保存退出
2、部署JDK
创建下载目录
mkdir /data/install-page
cd /data/install-page
下载JDK
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" Unauthorized Request Java Downloads | Oracle
解压JDK
tar zxvf jdk-8u321-linux-x64.tar.tar.gz
移动JDK并重命名为JAVA
mv jdk1.8.0_32 /data/java
配置JAVA系统环境变量
vim /etc/profile
#JAVA
JAVA_HOME=/data/java/
JRE_HOME=/data/java/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
source /etc/profile
验证JAVA是否安装成功
java -version
3、Nginx部署
创建Nginx安装目录
mkdir /data/nginx
创建Nginx日志目录
mkdir -p /data/nginx/logs/
创建nginx缓存目录
mkdir -p /data/nginx/temp
创建web目录
mkdir /data/nginx/web/
创建run目录
mkdir -p /data/nginx/run
进入安装包目录
cd /data/install-page/
下载nginx1.25.4
wget http://nginx.org/download/nginx-1.25.4.tar.gz
下载成功后在/data/install下会出现nginx-1.25.4.tar.gz的源码包
使用yum工具nginx所需的安装依赖包
yum -y install pcre pcre-devel openssl openssl-devel gcc gcc-c++ autoconf automake zlib-devel libxml2 libxml2-devel libxslt-devel gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data make GeoIP-devel GeoIP-update
创建nginx用户
useradd nginx
解压nginx
tar zvxf nginx-1.25.4.tar.gz
隐藏nginx版本信息(根据实际版本更改)
sed -i 's/1024050/0000000/' /home/data/install-page/nginx-1.25.4/src/core/nginx.h
sed -i 's/1.24.5/0.00.0/' /home/data/install-page/nginx-1.25.4/src/core/nginx.h
sed -i 's/nginx/aaaaa/' /home/data/install-page/nginx-1.25.4/src/core/nginx.h
sed -i 's/\"NGINX\"/"AAAAA"/' /home/data/install-page/nginx-1.25.4/src/core/nginx.h
解压完成后进入nginx安装目录
cd nginx-1.25.4
开始编译nginx,以下是编译时所用的参数
./configure --prefix=/data/nginx --error-log-path=/data/nginx/logs/error.log --http-log-path=/data/nginx/logs/access.log --pid-path=/data/nginx/run/nginx.pid --lock-path=/data/nginx/run/nginx.lock --http-client-body-temp-path=/data/nginx/temp/client_temp --http-proxy-temp-path=/data/nginx/temp/proxy_temp --http-fastcgi-temp-path=/data/nginx/temp/fastcgi_temp --http-uwsgi-temp-path=/data/nginx/temp/uwsgi_temp --http-scgi-temp-path=/data/nginx/temp/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
编译完成后开始安装nginx
make
make install
创建nginx启动文件
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/data/nginx/sbin/nginx
ExecReload=/data/nginx/sbin/nginx -s reload
ExecStop=/data/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
用wq保存退出
重新加载systemd,启动nginx及设置nginx开机自启
systemctl daemon-reload
systemctl start nginx
systemctl enable nginx
创建nginx配置文件目录及WEB目录
mkdir /data/nginx/conf.d
修改nginx配置文件
user nginx;
worker_processes 10;
error_log /data/nginx/logs/error.log warn;
pid /data/nginx/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /data/nginx/conf/mime.types;
default_type application/octet-stream;
#日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#日志目录
access_log /data/nginx/logs/access.log main;
#响应头缺失
# add_header X-Permitted-Cross-Domain-Policies value;
#在页面调用图片等其它资源时,或者发生页面跳转时,都会向服务端发生一个带Referrer的HTTP请求,仅发送源
# add_header 'Referrer-Policy' 'origin';
#noopen 用于指定IE 8以上版本的用户不打开文件而直接保存文件。在下载对话框中不显示“打开”选项
# add_header X-Download-Options "noopen" always;
#对 script 和 styleSheet 在执行是通过MIME 类型来过滤掉不安全的文件
# add_header X-Content-Type-Options nosniff;
#该页面可以在相同域名页面的 frame 中展示
# add_header X-Frame-Options SAMEORIGIN;
#隐藏版本号
server_tokens on;
#开启高效文件传输模式
sendfile on;
#减少网络报文段数量
#tcp_nopush on;
#提高I/O性能
tcp_nodelay on;
keepalive_timeout 65;
client_max_body_size 300m;
#开启文件压缩
gzip on;
gzip_min_length 8k;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_vary on;
gzip_static on;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/x-httpd-php image/jpeg image/jpg image/gif image/png;
include /data/nginx/conf.d/*.conf;
}
添加虚拟主机
cd /data/nginx/conf.d
vim web.conf
server {
listen 80;
server_name localhost;
charset utf-8;
access_log /data/nginx/logs/web.access.log;
#ssl_certificate /data/nginx/ssl/SSLname.pem;
#ssl_certificate_key /data/nginx/ssl/SSLname.key;
#ssl_session_cache shared:SSL:1m;
#ssl_session_timeout 5m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_prefer_server_ciphers on;
location / {
root /data/nginx/web/dist/;
index index.html index.php index.htm;
proxy_cache_valid 200 304 12h;
proxy_cache_valid any 20m;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 50;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
wp保存退出
重新加载nginx
systemctl reload nginx
检查nginx的状态
systemctl status nginx
4、Nacos部署
安装部署nacos
cd /data/install-page
tar -zxvf nacos-server-2.3.0.tar.gz -C /data
cd /data/nacos
导入nacos基础数据
mysql -uroot -p
输入密码
创建数据库
creata database nacos
source /data/nacos/conf/nacos-mysql.sql
select tables;
返回nacos服务器
修改nacos配置文件application.properties
vim /data/nacos/conf/application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=Root123456!
wq保存退出
nacos启动脚本增加JAVA变量
vim /data/nacos/bin/startup.sh
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/data/java
创建nacos启动文件
touch /lib/systemd/system/nacos.service
echo '[Unit]
Description=nacos server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/data/nacos/bin/startup.sh -m standalone
ExecStop=/data/nacos/bin/shutdown.sh
[Install]
WantedBy=multi-user.target' > /lib/systemd/system/nacos.service
设置开机自启
systemctl enable nacos.service
启动nacos
systemctl start nacos.sesrver
查看状态
systemctl status nacos.service
5、Kafka、Zeekpeer部署
cd /data/install-page/
解压KAFKA
tar -zxvf kafka_2.13-3.1.0.tgz -C /data/kafka
修改端口指定日志目录
vim /u01/data/kafka/config/server.properties
port=9092
host.name=192.168.1.1
log.dirs=/data/kafka/logs
创建kakfa启动文件,并配置开机自启
vim /lib/systemd/system/kafka
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/u01/data/java/bin"
User=root
Group=root
ExecStart=/data/kafka/bin/kafka-server-start.sh /data/kafka/config/server.properties
ExecStop=/data/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
加载systemd
systemctl daemon-reload
配置kafka自启动、启动kafka并查看状态
systemctl enable kafka
systemctl start kafka
systemctl status kafka
解压Zookeeper
tar zvxf zookeeper-3.4.12.tar.gz -C /data/zookerper
编辑zookeeper配置文件
vim /data/kafka/config/zookeeper.properties
dataDir=/data/kafka#zookeeper
dataLogDir=/data/kafka/logs#zookeeper
创建kakfa启动文件,并配置开机自启
vim /lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper service
After=network.target
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/u01/data/java/bin"
User=root
Group=root
ExecStart=/u01/data/kafka/bin/zookeeper-server-start.sh /u01/data/kafka/config/zookeeper.properties
ExecStop=/u01/data/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
加载systemd
systemctl daemon-reload
配置Zookeeper自启动、启动Zookeeper并查看状态
systemctl enable zookeeper
systemctl start zookeeper
systemctl status zookeeper
6、Redis部署
进入安装文件目录
cd /data/install-page
解压redis源码包
tar -zvxf redis-7.2.4.tar.gz -C /data
进行redis目录
cd /data/redis-7.2.4
编译redis
make
创建存储redis文件目录
mkdir -p /data/redis
将server与cli迁至存储文件目录
cp /data/redis-7.2.4/src/redis-server /u01/data/redis/
cp /data/redis-7.2.4/src/redis-cli /u01/data/redis/
将配置文件迁到存储目录
cp /data/redis-7.2.4/redis.conf /u01/data/redis/
修改redis配置文件
vim /data/redis/redis.conf
在bind 127.0.0.1前加“#”将其注释掉
默认为保护模式,把 protected-mode yes 改为 protected-mode no
默认为不守护进程模式,把daemonize no 改为daemonize yes
将 requirepass foobared前的“#”去掉,密码改为Root123456!
配置redis-server服务启动文件
vim /lib/systemd/system/redis.service
[Unit]
Description=redis server
[Service]
ExecStart=/data/redis/redis-server /u01/data/redis/redis.conf --daemonize no
ExecStop=/data/redis/redis-cli -p 6379 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
保存退出
重新加载systemd
systemctl daemon-reload
systemctl start redis.service
systemctl status redis.service
systemctl enable redis.service
7、Mysql部署
创建MySQL账号
useradd -M -s /sbin/nologin mysql
进入安装包目录
cd /data/install-page
解压mysql8.0.33
tar zxvf mysql-8.0.33-el7-x86_64.tar.gz
移动mysql至data目录并改名
mv mysql-8.0.33-el7-x86_64/ /data/mysql/
安装依赖包libaio
yum -y install libaio
创建MySQL数据目录、日志目录、错误日志文件、运行目录
mkdir /data/mysql/mysqldata
mkdir /data/mysql/logs
touch /data/mysql/logs/error.log
mkdir /data/mysql/run
mkdir /data/mysql/mysql-bin
修改mysql配置文件
vim /etc/my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /data/mysql
# 数据存放目录
datadir = /data/mysql/mysqldata
log-bin = /data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql/mysql-bin
innodb_log_group_home_dir =/data/mysql/mysql-bin
#日志及进程数据的存放目录
log-error =/data/mysql/logs/error.log
pid-file =/data/mysql/run/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE
default-time_zone = '+8:00'
##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 16M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#######################密码验证#########################
#skip_name_resolve=1
######################################################
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 5000
max_connect_errors = 5000
open_files_limit = 65535
#plugin-load=validate_password.so
binlog_format=mixed
#log_replica_updates=1
binlog_expire_logs_seconds =864000
#slow_query_log = 1
lower_case_table_names=1
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_redo_log_capacity = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
#mysql主备配置
#server-id=2 #mysql主备配置 #设置主服务器的ID(不能和别的服务器重复,建议使用ip的最后一段)
#sync_binlog=1 #,值可设置 1、500、1000;可自己根据测试性能配置
#binlog_expire_logs_seconds =7
#binlog-ignore-db=mysql # 表示不同步mysql库
#binlog-ignore-db=information_schema # 表示不同步information_schema库
#binlog-ignore-db=performance_schema
#binlog-ignore-db=sys
###binlog-do-db= #这个表示只同步某库 (如果没有此项,表示同步所有的库)
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[client]
default-character-set=utf8
wq保存退出
MySQL目录赋权
cd /data
chown -R mysql:root mysql
初始化数据库
cd /data/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/mysqldata
创建mysql启动文件,并配置开机自启
vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
wq保存退出
配置mysql自启动、启动msql并查看状态
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql
配置MySQL系统环境变量
vim /etc/profile
在文件最未行添加
#MYSQL
export ES_HOME=/data/mysql
export PATH=$ES_HOME/bin:$PATH
加载全局环境变量
source /etc/profile
查看MySQL初始密码
cat /data/mysql/logs/error.log
修改mysql的root密码,并创建远程连接账号和密码及赋权。
mysql -u root -p
alter user 'root'@'localhost' identified by 'password';
create user 'root'@'%' identified by 'password';
grant all privileges on *.* to root@'%' with grant option;
flush privileges;
8、kkFileView部署
安装KKFileView时,LibreOffice包可能会无法正常下载,所以提前下载好,放在安装目录下面,并改名
cd data/install-page
mv LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz /tmp/LibreOffice_7_rpm.tar.gz
解压KKFileView包
tar zvxf kkFileView-4.0.0.tar.gz
mv kkFileView-4.0.0 /data/kkFileview
创建KKFileView启动文件,并设置开机自启
vim /lib/systemd/system/KKFileView.service
[Unit]
Description=kkFileView server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/data/kkFileview/bin/startup.sh
ExecStop=/data/kkFileview/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
wq保存退出
重新加载systemd并添加自启动
systemctl daemon-reload
systemctl enable KKFileView.service
修改启动文件
cd /data/kkFileview/bin/startup.sh
#在#!/bin/bash下添加
export JAVA_HOME=/data/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
注释
vim /data/kkFileview/bin/startup.sh
修改/data/kkFileview/config/application.properties文件指定office_home
wq保存退出
解压LibreOffice并安装
cd /tmp
tar zxvf LibreOffice_7_rpm.tar.gz
cd LibreOffice_7
cd LibreOffice_7.1.4.2_Linux_x86-64_rpm/install/RPMS
rpm -ivh *.rpm
测试soffice是否正常
cd /opt/libreoffice7.1/program
./soffice -headless -accept="socket,host=127.0.0.1,port=8100:urp;" -nofirststartwizard &
ps -aux |grep soffice
杀死soffice进程,使用命令启动
systemctl start KKFileView.service
systemctl status KKFileView.service
9、Minio部署
添加unzip解压工具
yum install -y unzip
解压Minio
cd /data/install-page
unzip minio.zip
mv minio /data/
cd /data/minio/bin
chmod 755 *.sh
创建minio 数据目录
mkdir /data/minio/data
测试MINIO
./startup.sh -m standalone
./start.sh -m standalone
./minio server /data/minio/data
./minio server /data/minio/data
创建Minio启动文件,并配置开机自启
vim /lib/systemd/system/minio.service
[Unit]
Description=minio server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/data/minio/bin/start.sh
ExecStop=/data/minio/bin/stop.sh
[Install]
WantedBy=multi-user.target
wq保存退出
重新加载systemd
systemctl daemon-reload
启动minio,添加自启动并查看状态
systemctl start minio
systemctl enable minio
systemctl status minio