systemctl status firewalld
service iptables status
systemctl stop firewalld
service iptables stop
systemctl disable firewalld
chkconfig iptables off
systemctl enable firewalld
service iptables restart
chkconfig iptables on
firewall-cmd --query-port=1935/tcp
systemctl start firewalld.service
firewall-cmd --zone=public --add-port=1935/tcp --permanent
#--zone #作用域
#--add-port=1935/tcp #添加端口,格式为:端口/通讯协议
#--permanent #永久生效,没有此参数重启后失效
firewall-cmd --reload
netstat -ntlp #查看当前所有tcp端口·
netstat -ntulp |grep 1935 #查看所有1935端口使用情况·
yum install java-1.8.0-openjdk* -y
yum install vim -y
#查看磁盘空间,每个人的磁盘名称可能不同
df -h
#备份home文件
tar cvf /tmp/home.tar /home
#卸载/home,如果无法卸载,先终止使用/home文件系统的进程再卸载
umount /home #(卸载)
fuser -km /home/ #(终止)
#删除/home所在的lv
lvremove /dev/mapper/centos-home
#扩展/root所在的lv
lvextend -L +50G /dev/mapper/centos-root
#扩展/root文件系统
xfs_growfs /dev/mapper/centos-root
#重新创建home lv (创建时计算好剩余的磁盘容量,建议比剩余小1G左右,如果刚好和剩余容量一样可能会报错)
lvcreate -L 50G -n /dev/mapper/centos-home
#创建文件系统
mkfs.xfs /dev/mapper/centos-home
#挂载home
mount /dev/mapper/centos-home
#home文件恢复
tar xvf /tmp/home.tar -C /home/
#查看磁盘空间
df -TH
yum 包更新到最新
yum update -y
安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动以来的
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
# 安装最新版
yum install -y docker-ce
# 指定版本安装
yum -y install docker-ce-20.10.9-3.el7
启动 docker
systemctl start docker
停止docker
systemctl stop docker
#执行命令之后会出现如下提示:主要的意思就是docker已经停止了,但是可以随时被唤醒,所以使用docker命令就会启动
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
重启docker
systemctl restart docker
设置开机自启
systemctl enable docker
查看docker状态
systemctl status docker
查看docker版本信息
# 简单信息
docker -v
# 查看docker的版本号,包括客户端、服务端、依赖的Go等
docker version
# 查看系统(docker)层面信息,包括管理的images, containers数等
docker info
卸载docker
#查看已安装的docker
yum list installed|grep docker
#卸载
yum -y remove + 查看已安装的名字
docker images
docker search 镜像名称
docker pull 镜像名称:版本号
docker rmi 镜像名称:版本号
vim /var/lib/docker/image/overlay2/repositories.json
docker ps
docker ps -a
docker run -d -p 1337:1337 \
--network kong-net \
--name konga \
-e "NODE_ENV=production" \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:[email protected]:5432/konga" \
pantsel/konga
eg: \是换行的意思
run参数:
-rm
在容器退出时自动清理容器内部的文件系统
在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据.
但是,对于前台运行的容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要.
启动时设置-rm选项,这样在容器退出时就能够自动清理容器内部的文件系统.
-i 保持容器运行
-p 端口映射
-e 传递环境变量
-t 为容器重新分配一个伪输入终端
-d 以守护进程模式运行容器,退出后容器不会停止
-it创建一个交互式容器,推出后容器容器停止运行
-id创建一个守护容器;退出后容器不停止运行
–-name为创建的容器命名
docker exec -it 容器名称 /bin/bash
#eg:进入一个叫konga的容器
docker exec -it konga /bin/bash
# 在容器中执行了一个ping命令
ping 127.0.0.1
# 退出当前容器
exit
docker start 容器名称或者容器id
docker stop 容器名称或者容器id
docker rm 容器名称或者容器id
docker rm `docker ps -aq`
docker stop $(docker ps -a -q)
docker inspect 容器名称
cd /var/lib/docker/containers
rm -rf /var/lib/docker
网络模式
bridge:桥接docker(默认创建时,不指定网络驱动,将使用bridge模式)
none:不配置网络
host:和宿主机共享网络
例如:当你在容器上使用80端口访问其他应用,使用的是宿主机的80端口.
container:容器网络连通(用的少,局限很大)
docker network ls
rm -rf /var/lib/docker
docker network ls
docker network inspect networkname
docker network ls
#不指定网络驱动时,默认创建的是bridge网络.
docker network create networkname
docker network rm networkname
docker logs [OPTIONS] CONTAINER
Options参数
--details: 显示更多的信息
--follow(-f): 跟踪实时日志
--since string: 显示自某个timestamp之后的日志,或相对时间,如40m(即40分钟)
--tail string: 从日志末尾显示多少行日志, 默认是all
--timestamps(-t): 显示时间戳
--until string: 显示自某个timestamp之前的日志,或相对时间,如40m(即40分钟)
# 查看容器mysql 最近30分钟的日志:
docker logs --since 30m mysql
# 查看容器mysql 某时间之后的日志:
docker logs -t --since="2019-11-02T13:23:37" mysql
#查看容器mysql 某时间段日志:
docker logs -t --since="2019-11-02T13:23:37" --until "2019-11-03T12:23:37" mysql
菜鸟教程
#更新安装源:
apt-get update
#安装vim:
apt-get install vim
docker pull mysql
用来映射外部文件 在/usr/local/docker/mysql下创建对应目录
mkdir data
mkdir conf
mkdir logs
mkdir mysql-files
在conf中创建配置文件 my.cnf 内容如下
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /usr/local/docker/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= /var/lib/mysql
symbolic-links=0
!includedir /etc/mysql/conf.d/
给整个mysql目录赋权
chmod -R 777 mysql/*
docker run -itd --name mysql \
-v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/log:/var/log/mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files/ \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=BdL2hv25meIFG8rQ mysql --lower_case_table_names=1
lower_case_table_names: 忽略大小写 ,mysql8 必须在这里配置 在配置文件中配置不会生效
进入容器
docker exec -it mysql /bin/bash
连接mysql
mysql -uroot -pBdL2hv25meIFG8rQ
使用mysql库
use mysql
修改访问主机以及密码等,设置为所有主机可访问
# mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'BdL2hv25meIFG8rQ';
刷新
flush privileges;
docker pull nacos/nacos-server
nacos sql
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info */
/******************************************/
CREATE TABLE `config_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL,
`c_use` varchar(64) DEFAULT NULL,
`effect` varchar(64) DEFAULT NULL,
`type` varchar(64) DEFAULT NULL,
`c_schema` text,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_aggr */
/******************************************/
CREATE TABLE `config_info_aggr` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(255) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_beta */
/******************************************/
CREATE TABLE `config_info_beta` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info_tag */
/******************************************/
CREATE TABLE `config_info_tag` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_tags_relation */
/******************************************/
CREATE TABLE `config_tags_relation` (
`id` bigint(20) NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = group_capacity */
/******************************************/
CREATE TABLE `group_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = his_config_info */
/******************************************/
CREATE TABLE `his_config_info` (
`id` bigint(64) unsigned NOT NULL,
`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`data_id` varchar(255) NOT NULL,
`group_id` varchar(128) NOT NULL,
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL,
`md5` varchar(32) DEFAULT NULL,
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`src_user` text,
`src_ip` varchar(50) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = tenant_capacity */
/******************************************/
CREATE TABLE `tenant_capacity` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
CREATE TABLE `tenant_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) default '' COMMENT 'tenant_id',
`tenant_name` varchar(128) default '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (
`role` varchar(50) NOT NULL,
`resource` varchar(255) NOT NULL,
`action` varchar(8) NOT NULL,
UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库ip \
-e MYSQL_SERVICE_PORT=数据库端口 \
-e MYSQL_SERVICE_USER=数据库用户名 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_NAME=数据库 \
-p 8848:8848 \
--name nacos \
nacos/nacos-server
低版本nacos不支持mysql8 需要自己拉取源码修改
docker pull redis
创建目录 /usr/local/docker/redis/data 并赋权
chown -R 755 /usr/local/docker/redis/*
# requirepass 设置密码
docker run -itd -v /usr/local/docker/redis/data:/data --name redis -p 6379:6379 redis --requirepass 4W7mgMQe5XIC1viI
docker pull mysql:5.7
cd /usr/local
/docker/mysql57
chmod -R 755 文件夹名
docker run -p 3306:3306 --name mysql57 -v /usr/local/docker/mysql57/logs:/logs -v /usr/local/docker/mysql57/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker search tomcat
docker pull tomcat:latest
cd /usr/local/docker/
mkdir tomcat
chown -R 755 tomcat/
将war包上传到/usr/local/docker/tomcat/目录下
docker run -itd --privileged=true -v /usr/local/docker/tomcat/:/usr/local/tomcat/webapps/ -p 38702:8080 tomcat
nohup java -jar ruoyi-admin.jar &
首先进入容器
命令格式为:docker exec -it +容器id +命令
docker exec -ti 镜像的id /bin/bash
在容器内进入日志目录
cd /home/edt/logs/
docker pull nginx:latest
mkdir -p /data/nginx
mkdir -p /data/nginx/conf.d
mkdir -p /data/wwwroot/html
chown -R 1000:1000 /data/nginx
cd /data/nginx
vim /data/nginx/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_max_body_size 20m;
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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml;
#配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
include /etc/nginx/conf.d/*.conf;
}
docker run --name nginx --restart=always -p 80:80 \
--network=host \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/cert:/etc/nginx/cert \
-v /data/wwwroot:/data/wwwroot \
-d nginx
cd /data/nginx/conf.d
vim /data/nginx/conf.d/default.conf
#配置内容如下
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /data/wwwroot/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
cd /data/wwwroot/html
vim /data/wwwroot/html/50x.html
#50x.html
<!DOCTYPE html>
Error</title>