可道云,原名芒果云,是基于Web技术的私有云在线文档管理解决方案.Kod,读音通code,意为“代码,编码”,中文名为“可道”
环境说明
部署规划:
10.0.0.200:Ubuntu20.04,Nginx,php-fpm,kodbox
10.0.0.8:CentOS8,MySQL8.0,redis5.0
10.0.0.200:安装相关包
[root@ubunt ~]# apt -y install php7.4-fpm php7.4-mysql php7.4-json php7.4-xml php7.4-mbstring php7.4-zip php7.4-gd php7.4-curl php-redis
安装nginx:脚本安装,内存不小于3G
安装脚本如下:
#!/bin/bash
NGINX_FILE=nginx-1.22.0
#NGINX_FILE=nginx-1.20.2
#NGINX_FILE=nginx-1.18.0
NGINX_URL=http://nginx.org/download/
TAR=.tar.gz
SRC_DIR=/usr/local/src
NGINX_INSTALL_DIR=/apps/nginx
CPUS=`lscpu |awk '/^CPU(s)/{print $2}'`
. /etc/os-release
color () {
RES_COL=60
MOVE_TO_COL="echo -en 33[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en 33[1;32m"
SETCOLOR_FAILURE="echo -en 33[1;31m"
SETCOLOR_WARNING="echo -en 33[1;33m"
SETCOLOR_NORMAL="echo -en E[0m"
echo -n "$1" && $MOVE_TO_COL
echo -n "["
if [ $2 = "success" -o $2 = "0" ] ;then
${SETCOLOR_SUCCESS}
echo -n $" OK "
elif [ $2 = "failure" -o $2 = "1" ] ;then
${SETCOLOR_FAILURE}
echo -n $"FAILED"
else
${SETCOLOR_WARNING}
echo -n $"WARNING"
fi
${SETCOLOR_NORMAL}
echo -n "]"
echo
}
check () {
[ -e ${NGINX_INSTALL_DIR} ] && { color "nginx 已安装,请卸载后再安装" 1; exit; }
cd ${SRC_DIR}
if [ -e ${NGINX_FILE}${TAR} ];then
color "相关文件已准备好" 0
else
color '开始下载 nginx 源码包' 0
wget ${NGINX_URL}${NGINX_FILE}${TAR}
[ $? -ne 0 ] && { color "下载 ${NGINX_FILE}${TAR}文件失败" 1; exit; }
fi
}
install () {
color "开始安装 nginx" 0
if id nginx &> /dev/null;then
color "nginx 用户已存在" 1
else
useradd -s /sbin/nologin -r nginx
color "创建 nginx 用户" 0
fi
color "开始安装 nginx 依赖包" 0
if [ $ID == "centos" ] ;then
if [[ $VERSION_ID =~ ^7 ]];then
yum -y install gcc make pcre-devel openssl-devel zlib-devel perl-ExtUtils-Embed
elif [[ $VERSION_ID =~ ^8 ]];then
yum -y install make gcc-c++ libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel perl-ExtUtils-Embed
else
color '不支持此系统!' 1
exit
fi
elif [ $ID == "rocky" ];then
yum -y install gcc make gcc-c++ libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel perl-ExtUtils-Embed
else
apt update
apt -y install gcc make libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
fi
cd $SRC_DIR
tar xf ${NGINX_FILE}${TAR}
NGINX_DIR=`echo ${NGINX_FILE}${TAR}| sed -nr 's/^(.*[0-9]).*/1/p'`
cd ${NGINX_DIR}
./configure --prefix=${NGINX_INSTALL_DIR} --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
make -j $CPUS && make install
[ $? -eq 0 ] && color "nginx 编译安装成功" 0 || { color "nginx 编译安装失败,退出!" 1 ;exit; }
chown -R nginx.nginx ${NGINX_INSTALL_DIR}
echo "PATH=${NGINX_INSTALL_DIR}/sbin:${PATH}" > /etc/profile.d/nginx.sh
cat > /lib/systemd/system/nginx.service /dev/null
systemctl is-active nginx &> /dev/null || { color "nginx 启动失败,退出!" 1 ; exit; }
color "nginx 安装完成" 0
}
check
install
[root@ubunt ~]#bush nginx_install.sh
[root@ubuntu2004 ~]#ln -s /apps/nginx/sbin/nginx /usr/sbin/
10.0.0.200:php环境准备
修改nginx配置文件用户与php配置文件用户为统一用户
[root@ubunt ~]# vim /apps/nginx/conf/nginx.conf
user www-data;
nginx -s reload
ps aux 可查看nginx worker进程用户被修改成www-data
php配置文件修改:
修改php配置文件监听端口
vim /etc/php/7.4/fpm/pool.d/www.conf
#;listen = /run/php/php7.4-fpm.sock #在这一行下面添加
listen = 127.0.0.1:9000 #此为php在本机上,如果不在一个机器上,就得写php在的ip
修改php配置文件状态页
pm.status_path = /php-status
开启ping命令,探测php是否健康
ping.path = /ping
ping.response = pang(可改)
开启访问日志并配置路径
access.log = /var/log/$pool.access.log (不指定路径,服务起不来)
开启慢查询
slowlog = log/$pool.log.slow
创建静态页面目录并写入:[root@ubunt ~]# mkdir /data/html/ -p
vim /data/html/index.html
www.meng.orgc'd
创建动态页面目录并写入:[root@ubunt ~]# mkdir /data/php/
vim /data/php/test.php
重启php
[root@ubunt ~]# systemctl restart php7.4-fpm.service
在nginx配置文件下增加include /apps/nginx/conf/conf.d/*.conf;
增加位置在:配置文件最下面 }内。
mkdir /apps/nginx/conf/conf.d/
vim /apps/nginx/conf/conf.d/php.conf (必须以conf结尾)
server {
listen 80;
server_name www.meng.org;
root /data/php; #如果程序包没有分开动静资源,需要动静资源放一个目录下,以免找不到静态资源
index index.php; #指定默认页面
location ~ .php$|ping|php-status {
root /data/php; #动态页面存放路径
fastcgi_pass 127.0.0.1:9000; #php放在本机上,指定本机
fastcgi_index index.php; #默认页面
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@ubunt conf.d]# nginx -s reload 重新加载
10.0.0.200:准备可道云程序
[root@ubunt ~]# wget https://static.kodcloud.com/update/download/kodbox.1.34.zip
[root@ubunt ~]# mv kodbox.1.34.zip /data/php/
[root@ubunt php]# unzip kodbox.1.34.zip
修改权限
[root@ubunt ~]# chown -R www-data. /data/php
10.0.0.8:MySQL创建可道云数据库、账户并授权
mysql> create database kodbox;
Query OK, 1 row affected (0.00 sec)
mysql> create user kodbox@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on kodbox.* to kodbox@'10.0.0.%';
Query OK, 0 rows affected (0.01 sec)
10.0.0.8:准备redis服务,安装并启动
[root@rocky8 ~]#yum -y install redis
[root@rocky8 ~]#vim /etc/redis.conf
bind 0.0.0.0
[root@rocky8 ~]#systemctl enable --now redis 端口号6379
DNS解析后去网页访问www.meng.org
利用 LNMP 实现 实现可道云私有云会话保持
后端服务器100、200机器安装nginx及php相关包
[root@ubunt ~]# apt -y install nginx
[root@ubuntu2004 ~]#ln -s /apps/nginx/sbin/nginx /usr/sbin/ (如果是编译安装,需执行此步)
[root@ubunt ~]# apt -y install php7.4-fpm php7.4-mysql php7.4-json php7.4-xml php7.4-mbstring php7.4-zip php7.4-gd php7.4-curl php-redis
后端服务器100、200php准备环境
修改nginx配置文件用户与php配置文件用户为统一用户并增加include
[root@ubunt ~]# vim /apps/nginx/conf/nginx.conf
user www-data;
nginx -s reload
ps aux 可查看nginx worker进程用户被修改成www-data
在nginx配置文件下增加include /apps/nginx/conf/conf.d/*.conf;
增加位置在:配置文件最下面 }内。
mkdir /apps/nginx/conf/conf.d/
vim /apps/nginx/conf/conf.d/php.conf (必须以conf结尾)
server {
listen 80;
server_name www.meng.org;
root /data/php; #静态页面存放路径
index index.php;
location ~ .php$|ping|php-status {
root /data/php; #动态页面存放路径
fastcgi_pass 127.0.0.1:9000; #php放在本机上,指定本机
fastcgi_index index.php; #默认页面
fastcgi_param HTTPS on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@ubunt conf.d]# nginx -s reload 重新加载
php配置文件修改:
修改php配置文件监听端口
vim /etc/php/7.4/fpm/pool.d/www.conf
#;listen = /run/php/php7.4-fpm.sock #在这一行下面添加
listen = 127.0.0.1:9000 #此为php在本机上,如果不在一个机器上,就得写php在的ip
修改php配置文件状态页
pm.status_path = /php-status (取消注释)
开启ping命令,探测php是否健康
ping.path = /ping (取消注释)
ping.response = pang (取消注释)
开启访问日志并配置路径
access.log = /var/log/$pool.access.log (取消注释,并指定路径不指定路径,服务起不来)
开启慢查询
slowlog = log/$pool.log.slow (取消注释)
创建静态页面目录并写入:[root@ubunt ~]# mkdir /data/html/ -p
创建动态页面目录并写入:[root@ubunt ~]# mkdir /data/php/
后端服务器100.200:准备可道云程序
[root@ubunt ~]# wget https://static.kodcloud.com/update/download/kodbox.1.34.zip
[root@ubunt ~]# mv kodbox.1.34.zip /data/php/
[root@ubunt php]# unzip kodbox.1.34.zip
修改所有者
[root@ubunt ~]# chown -R www-data. /data/php
重启php
[root@ubunt ~]# systemctl restart php7.4-fpm.service
10.0.0.8:MySQL创建可道云数据库、账户并授权
mysql> create database kodbox;
Query OK, 1 row affected (0.00 sec)
mysql> create user kodbox@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on kodbox.* to kodbox@'10.0.0.%';
Query OK, 0 rows affected (0.01 sec)
10.0.0.8:准备redis服务,安装并启动
[root@rocky8 ~]#yum -y install redis
[root@rocky8 ~]#vim /etc/redis.conf
bind 0.0.0.0
[root@rocky8 ~]#systemctl enable --now redis 端口号6379
DNS解析200机器,访问www.meng.org,并设置相关信息。
设置好信息后,把200机器下/data/php目录全部内容传输给100机器,这样当100机器解析DNS去访问可道云数据就不会被覆盖
[root@ubunt ~]# rsync -a /data/php/ 10.0.0.100:/data/php
4把101机器设置反向代理
安装nginx
[root@ubunt ~]# apt -y install nginx
[root@ubuntu2004 ~]#ln -s /apps/nginx/sbin/nginx /usr/sbin/ (如果是编译安装,需执行此步)
修改反向代理nginx配置文件
在nginx配置文件下增加
[root@ubuntu2004 ~]#vim /apps/nginx/conf/nginx.conf
include /apps/nginx/conf/conf.d/*.conf;
增加位置在:配置文件最下面 }内。
[root@ubuntu2004 ~]#nginx -s reload
mkdir /apps/nginx/conf/conf.d/
vim /apps/nginx/conf/conf.d/www.wamg.org.conf (必须以conf结尾)
upstream webservers {
server 10.0.0.100;
server 10.0.0.200;
}
server {
listen 80;
server_name www.meng.org;
root /data/nginx/html/pc;
access_log /apps/nginx/logs/www.meng.org_access.log main;
return 302 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name www.meng.org;
ssl_certificate /apps/nginx/conf/conf.d/ssl/www.meng.org.pem;
ssl_certificate_key /apps/nginx/conf/conf.d/ssl/www.meng.org.pem;
ssl_session_timeout 10m;
location / {
proxy_pass http://webservers;
proxy_set_header Host $http_host;
}
}
nginx -s reload
创建证书目录并存放在证书文件
mkdir /apps/nginx/conf/conf.d/ssl -p
ls /apps/nginx/conf/conf.d/ssl
[root@ubuntu2004 ssl]#ls
www.meng.org.pem www.meng.org.pem (如果申请的证书与域名不匹配,访问时会提醒不安全)
安装共享服务器
[root@rocky8 ~]#yum -y install nfs-utils
[root@rocky8 ~]#systemctl status nfs-server.service
创建共享目录
[root@rocky8 ~]#mkdir /data/www -p 创建目录
[root@rocky8 ~]#uesradd -u 33 -g 33 www-data 创建用户
[root@rocky8 ~]#chown -R www-data. /data/www 指定用户
[root@rocky8 ~]#cat /etc/exports 设定共享目录存放规则
/data/www *(rw)
[root@rocky8 ~]#exportfs -r 生效
[root@rocky8 ~]#exportfs -v 查询
/data/www (sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
挂载100web1、200web2
查看200和100机器的php数据,把数据多的拷贝到共享目录上
[root@ubunt data]# tree /data/php/data/files/
/data/php/data/files/
├── 202209
│ └── 24_af788b66
│ ├── 1d0957d7f2ae01a2.png
│ ├── dcd3119b99d51673646711258b624892.jpeg
│ ├── icloud.oexe
│ ├── index.html
│ └── 高德地图.oexe
└── index.html
2 directories, 6 files
[root@ubunt data]# rsync -av /data/php/data/files/ 10.0.0.18:/data/www/
200、100机器下载共享相关包
[root@ubunt data]# apt install nfs-common
[root@ubunt ~]# showmount -e 10.0.0.18
Export list for 10.0.0.18:
/data/www * (可以挂载)
开始挂载:100web1
[root@ubunt ~]# vim /etc/fstab
nfs.meng.org:/data/www/ /data/php/data/files nfs _netdev 0 0(用域名可防止ip变化,需DNS解析)
DNS解析:
[root@ubunt ~]# cat /etc/hosts
10.0.0.18 nfs.meng.org
[root@ubunt ~]# mount -a
开始挂载:200web2
[root@ubunt ~]# vim /etc/fstab
nfs.meng.org:/data/www/ /data/php/data/files nfs _netdev 0 0(用域名可防止ip变化,需DNS解析)
[root@ubunt ~]# cat /etc/hosts
10.0.0.18 nfs.meng.org
[root@ubunt ~]# mount -a
挂在完成
打开可道云:上传一张图片,分别去200、100上去查看是否存在
[root@ubuntu2004 ~]#tree /data/php/data/files/202209/tree /data/php/data/files/202209/
两个机器都有这个图片,说明共享成功
8机器查看redis中保存的session信息
[root@rocky8 ~]#redis-cli
127.0.0.1:6379> key *
(error) ERR unknown command `key`, with args beginning with: `*`,
127.0.0.1:6379> keys *
1) "ef3a74a4b9201ef6fd97882d88e38d1b"
2) "8b4ab164c5cab2f5225b973dc9498f96"
3) "28c9e4738c3448a43c7ce041201e23e2"
4) "ba9cb8a61c2290a6e7ac0f1b21dabef2"
5) "483cde2b17f7a96281bc3a5c75ac390d"
redis数据已保存。如果删除这些缓存数据,用户需要重新登录
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
1) "ba9cb8a61c2290a6e7ac0f1b21dabef2"
127.0.0.1:6379>
重新登陆,缓存数据又有了
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Py之imbalanced-ensemble:imbalanced-ensemble库的简介、安装、使用方法之详细攻略 目录 imbalanced-ensemble库的简介 imbalanced-ensemble库的安装 imbalanced-ensemble…