虚拟机中使用docker搭建nacos集群,并用nginx实现负载均衡,使用mysql实现数据持久化。
参考官网地址:https://nacos.io/zh-cn/docs/quick-start-docker.html
1:首先将下载官方的demo下载到本机 克隆地址:https://github.com/nacos-group/nacos-docker.git
下载完成后,得到一个nacos-docker 文件夹
然后将此文件夹以及全部内容上传到虚拟机的centos8中。
或者你可以直接在虚拟机上进行克隆
git clone --depth 1 https://github.com/nacos-group/nacos-docker.git
进入nacos-docker文件夹
cd nacos-docker
使用docker compose进行构建
docker-compose -f example/cluster-hostname.yaml up
2: 修改虚拟机的host文件,需要将所有的127.0.0.1改为你自己的虚拟机的ip,这一步非常重要(官网没有提到),否则会出现无法注册服务的问题
vim /etc/hosts
3:使用docker安装nginx,需要先随便安装一个不挂载劵的nginx然后复制出配置文件,然后删掉当前nginx,然后再次安装挂载劵的nginx
docker run --name tmp-nginx-container -d nginx
docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf
docker rm -f tmp-nginx-container
安装挂载劵的nginx
docker run -p:80:80 --name mynginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
4:配置nginx。 192.168.247.128 这个是我虚拟机的ip,需要替换成你自己虚拟机的ip
可以将此文件全部复制到/host/path/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;
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;
upstream nacos {
server 192.168.247.128:8848;
server 192.168.247.128:8849;
server 192.168.247.128:8850;
}
server
{
listen 80;
location / {
proxy_pass http://nacos;
}
}
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
配置完之后 重启niginx
docker restart mynginx
配置完成之后在浏览器输入:192.168.247.128/nacos
即可看到登陆界面,账号密码都是nacos
5:验证是否可以注册服务,成功会返回ok:
curl -X POST 'http://192.168.247.128/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'