赞
踩
之前是在自己的虚拟机上进行部署,但是在本机上运行虚拟机以及众多服务会对本机造成非常大的压力,基于这种考虑,将部分内容移动到阿里云服务器上进行使用,以减轻本机压力,本机只需要通过xshell连接到阿里云服务器开启相关服务即可
可以去官网购买,阿里云,我是趁折扣时期买了一台ECS云服务器…系统是CentOS7.9
1.卸载旧版本docker,如果是新的服务器可以跳过这步
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 或者
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2.安装yum工具,yum工具服务器上通常会自带
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
3.设置docker镜像源,可以提高下载速度
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
4.下载以及安装docker-ce(社区免费版)
yum install -y docker-ce
5.完成之后,不要着急启动docker,当时踩坑安装之后直接启动了docker结果导致后续部分容器启动不起来,报错:
docker: Error response from daemon:
driver failed programming external connectivity on endpoint
经过查阅很多资料,了解到该错误似乎是由于未启动防火墙,而优先启动了docker导致的,如果你先启动了docker,然后才启动的防火墙可以使用如下操作:
# 关闭docker
systemctl stop docker
# 关闭防火墙命令:
systemctl stop firewalld
# 在防火墙中,添加开放端口命令:这一步可以选择开放你未来需要使用的端口比如mysql的3306
firewall-cmd --add-port=3306/tcp --permanent
# 重新加载防火墙,添加开放端口之后记得从新加载防火墙
firewall-cmd --reload
# 重新启动docker
systemctl start docker
综上所述,应该优先启动防火墙:
systemctl start firewalld
然后再启动docker
systemctl start docker
通过docker -v查看docker版本,如果有版本提示则成功
docker -v
在微服务项目中会使用众多的容器,我们逐个讨论。
1.拉取镜像,我使用的mysql版本是8.0.33
docker pull mysql:8.0.33
2.创建并启动容器
# --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
docker run -p 3306:3306 --name mysql \
-v /mount/mysql/logs:/logs \
-v /mount/mysql/data:/var/lib/mysql \
-v /mount/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456\
-d mysql:8.0.33
-v目录挂载,如果没有在宿主机上提前创建目录,执行该命令时会自动创建挂载目录。
3.容器启动之后进入容器内部并使用密码登陆
# 查看运行的容器
docker ps
# 查看所有的容器
docker ps -a
# 进入容器
docker exec -it mysql /bin/bash
# 进入mysql
mysql -u root -p (回车)
输入自己的密码
# 退出mysql
exit
# 退出容器
exit
# 设置MySQL开机自启
docker update mysql --restart=always
# 重启mysql
docker restart mysql
此时mysql服务已经正常启动了,但是我们仍然无法在外部使用公网IP+端口号访问mysql,因此还需要再阿里云的安全组规则中进行配置(安全组出方向默认允许所有访问,即从安全组内ECS访问外部都是放行的。但是入方向,即从外部访问服务器的端口是受到限制的),注意,服务器的防火墙也需要开放对应端口,就是通过2.5中的那种方式开放端口
“手动添加”入方向端口号
点击“保存”,随后在navicat中测试连接,如图连接成功,然后我们就可以在本机直接操作服务器中的mysql了。
一个微服务项目必然会用到的就是注册中心了,这里我们选择目前主流的nacos注册中心
1.拉取镜像
我使用的nacos版本是1.4.1
docker pull nacos/nacos-server:1.4.1
2.在数据库中添加nacos注册中心要用到的表结构(也可以不使用MySQL存储对应的数据内容,Nacos会直接使用自带的一个小型数据库)
nacos-db.sql,直接点击链接获取,如果你访问github非常慢,直接使用如下的sql即可:(建议先手动创建数据库,再在数据库中新建查询,然后将sql粘贴进去再运行)
/******************************************/
/* 数据库全名 = 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(128) DEFAULT NULL,
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) 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,
`encrypted_data_key` text NOT NULL COMMENT '密钥',
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(128) 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 '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL 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 '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(20) 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 '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' 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 '2010-05-05 00:00:00',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
`src_user` text,
`src_ip` varchar(20) DEFAULT NULL,
`op_type` char(10) DEFAULT NULL,
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL 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 '2010-05-05 00:00:00' COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' 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,
constraint uk_username_role UNIQUE (username,role)
);
CREATE TABLE permissions (
role varchar(50) NOT NULL,
resource varchar(512) NOT NULL,
action varchar(8) NOT NULL,
constraint uk_role_permission UNIQUE (role,resource,action)
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
3.创建挂载目录并创建修改配置文件:
mkdir -p /mount/nacos/logs
mkdir -p /mount/nacos/init.d
#新建并修改nacos的配置文件
vim /mount/nacos/init.d/custom.properties
4.添加配置文件custom.properties内容,注意db.url.0=jdbc:mysql://172.20.34.155:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true这里使用你服务器的内网IP,就是eth0对应的那个172开头的IP地址
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://172.20.34.155:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
5.创建并运行nacos容器
# 创建并运行nacos容器
docker run \
-p 8848:8488 \
--name nacos -d \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-v /mount/nacos/logs:/home/nacos/logs \
-v /mount/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server:1.4.1
# 或者简易版本,如果使用这一套可以直接忽略上述步骤2,3,4
docker run --name nacos -d \
-p 8848:8848 \
-e MODE=standalone \
--restart=always \
nacos/nacos-server
6.开放对应的端口
一个好用的在线端口检测网站f端口在线监测传送门。
事实上阿里云服务器是有2个防火墙的,一个是安全组,可以理解为阿里云统一管理的一个外围防火墙,服务器本身如果是CentOS7及以上版本,会使用firewalld防火墙,一个需要注意的点是即使你同时开放了2个防火墙的对应端口,你直接使用监测工具也是监测到端口关闭,因为没有响应的应用监听在这些端口,所以端口对外暴露实际上是三个步骤:1.开放阿里云安全组端口。2.开放服务器firewalld对应端口。3.在已经开放的端口上设置应用监听。
以Nacos注册中心使用的8848端口为例,介绍以下步骤:
1.在入方向手动添加端口8848
2.在服务器上手动开启端口8848
# 1.添加8848端口,永久生效
firewall-cmd --zone=public --add-port=8848/tcp --permanent
# 2.更新防火墙配置
firewall-cmd --reload
# 3.查看已经开放的端口
firewall-cmd --list-ports
3.启动nacos容器开启nacos服务,然后使用nestat命令查看各个端口服务监听状况:
netstat -ntlp
如上图所示,8848有应用在监听
4(可选).在我的服务器上8848这个端口比较特殊,因为当时在开放3306端口的时候,经过上述三步端口已经打开,但是8848端口并不是这样,还需要在iptables再允许流量经过8848端口:
# 允许流量经过8848端口
iptables -A INPUT -p tcp --dport 8848-j ACCEPT
# 查看iptables规则内容(入方向)
iptables -L INPUT --line-numbers
如上图所示,最下方的规则8是我们新添加的内容。此时我们的8848端口就是开放的了,并且可以通过
“http://公网IP:8848/nacos”访问的nacos注册中心.
另外,需要注意的是:
第一点,如果你在配置了上述内容之后重新启动了服务器,那么之前添加的iptables规则会消失,还需要手动添加一次(或者有其他什么方案可以永久添加的,但是我并没有找到);
第二点,应该有先开启firewalld服务,再开启docker服务,如果你想要使用防火墙firewalld的话
然而,当我后来又重启服务器再次此时的时候,却发现即使不用第四步骤,只需要在netstat -ntlp的时候你需要的服务监听在对应的端口时,并且已经完成了1,2步骤,开放了对应的安全组端口和服务器防火墙端口即可。
还有一个就是,对于3306端口,没有防火墙firewalld时和有防火墙并开放了3306端口时是一样的;但是对于8848端口,没有防火墙时,是关闭的状态,反而是有防火墙并开放了对应的端口8848是开启的状态;我对此的推测是:首先firewalld是一个基于iptables而简化操作的防火墙,也就是firewalld是在iptables之上建立的,所以firewalld的指令会直接影响iptables的设置,所以关闭firewalld时,使用的是iptables自己的那一套,但是这套中并没有设置对应的端口规则,因此手动添加步骤4,如果开启了firewalld,由于已经在步骤3中设置了firewalld对于8848的规则,因此就使用这一套规则。
Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。 例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
1.拉取minio镜像(最新版本或者指定版本)或者从minio压缩包中获取;
# 默认拉取minio镜像,建议不要使用最新版,最新版与我们常用的版本变化差异较大
docker pull minio/minio:RELEASE.2021-06-17T00-10-46Z
2.创建并启动容器
# 创建并启动minio容器;
docker run -p 9000:9000 \
--name minio -d \
--restart=always \
-e "MINIO_ROOT_USER=minio" \
-e "MINIO_ROOT_PASSWORD=minio123456" \
-v /mount/minio/data:/data \
-v /home/config:/root/.minio \
minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
如果启动时报错:(类似的错误)
/usr/bin/docker-current: Error response from daemon:
driver failed programming external connectivity on endpoint node
(7e1282d78b546d89e53823c2f96b75e53c683a10c725f4ce2454ee08b00cace0):
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0
--dport 3000 -j DNAT --to-destination 172.17.0.2:3000 !
-i docker0: iptables: No chain/target/match by that name.
则需要重启docker服务
如果出现了能正常启动,但是每当访问minio服务时minio容器会不断自动重启,使用
docker logs [容器ID]
命令查看日志,如果日志中出现了:
ERROR Unable to initialize backend: format.json file:
expected format-type: fs, found: xl
说明是由于挂载的数据卷已经被之前的minio占用了(之前别的minio启动时占用过),这时需要进入到挂载数据的目录下,我的是“/mount/minio/data”,使用
ls -a
命令查看所有隐藏文件,并删除.minio.sys文件,删除命令为:
rm -rf .minio.sys
3.开放9000端口
首先需要开启阿里云服务器安全组中的9000端口;
然后需要开启阿里云服务器上的防火墙firewalld的9000端口;
# 添加开放的端口
firewall-cmd --add-port=9000 --zone=public ---permanent
# 更新防火墙配置
firewall-cmd --reload
最后需要在/etc/sysconfig/iptables(也可能是iptables-config,iptables.config)中添加对应的端口号;总之都添加一遍就对了,然后保存,重启服务
# 添加的内容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
# 重启服务命令
systemctl restart firewalld
1.上传前端工程和nginx包
2.配置nginx配置文件
首先创建在conf目录下创建一个目录,然后再在下边创建一个配置文件,在外围的配置文件nginx.conf中引用该里边的配置文件即可。
内部配置文件:
upstream heima-app-gateway{
server localhost:51601;
}
server {
listen 8801;
location / {
root /home/software/front/app-web; //使用的是前端工程的地址;
index index.html;
}
location ~/app/(.*) {
proxy_pass http://heima-app-gateway/$1;
proxy_set_header HOST $host; # 不改变源请求头的值
proxy_pass_request_body on; #开启获取请求体
proxy_pass_request_headers on; #开启获取请求头
proxy_set_header X-Real-IP $remote_addr; # 记录真实发出请求的客户端IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理信息
}
}
外部配置文件nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 引入自定义配置文件
include leadnews.conf/*.conf;
}
3.使用容器启动nginx
3.1 拉取nginx镜像
# 查看容器镜像版本
docker search nginx
这里发现找不到我们需要的1.18.0的nginx镜像文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。