docker-compose搭建nacos集群
admin
2024-01-29 09:40:56
0

目录

  • 配置配置
    • 创建目录
    • 配置custom.properties
    • 配置nacos配置信息
    • 配置docker-compose.yml
    • 配置nginx的nginx.conf
    • 目录的效果图
  • 启动docker-compose
  • 总结

        本文是通过docker-compose在linux配置nacos高可用集群。前提条件是系统中需要安装docker和docker-compose。

配置配置

创建目录

mkdir -p data/cluster-logs/nacos1;
mkdir -p data/cluster-logs/nacos2;
mkdir -p data/cluster-logs/nacos3;
mkdir -p data/init.d;
mkdir -p env/;

配置custom.properties

        在data/init.d目录下配置custom.properties文件。

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

配置nacos配置信息

        在env目录下配置nacos-hostname.env,MYSQL_SERVICE_HOST中填写当前服务对应的ip。

#nacos dev env
PREFER_HOST_MODE=hostname
NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848
MYSQL_SERVICE_HOST=$host
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=123456
JVM_XMS=512m
JVM_XMX=512m
JVM_XMN=256m
JVM_MS=64m
JVM_MMS=128m

        在env目录下配置mysql.env。

MYSQL_ROOT_PASSWORD=123456
MYSQL_DATABASE=nacos
MYSQL_USER=root
MYSQL_PASSWORD=123456

配置docker-compose.yml

version: "3"
services:nacos1:hostname: nacos1container_name: nacos1image: nacos/nacos-server:latestvolumes:- ./data/cluster-logs/nacos1:/home/nacos/logs- ./data/init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- 8811:8848- 9811:9848- 9812:9849env_file:- ./env/nacos-hostname.envrestart: alwaysnetworks:- nacosnacos2:hostname: nacos2image: nacos/nacos-server:latestcontainer_name: nacos2volumes:- ./data/cluster-logs/nacos2:/home/nacos/logs- ./data/init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- 8822:8848- 9822:9848- 9823:9849env_file:- ./env/nacos-hostname.envrestart: alwaysnetworks:- nacosnacos3:hostname: nacos3image: nacos/nacos-server:latestcontainer_name: nacos3volumes:- ./data/cluster-logs/nacos3:/home/nacos/logs- ./data/init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- 8833:8848- 9833:9848- 9834:9849env_file:- ./env/nacos-hostname.envrestart: alwaysnetworks:- nacosnacos-nginx:networks:- nacoscontainer_name: nacos-nginximage: nginxvolumes:- ./nginx/nginx.conf:/etc/nginx/nginx.confports:- 8848:80depends_on:- nacos1- nacos2- nacos3
networks:nacos:external: false

配置nginx的nginx.conf

        在nginx/目录下配置nginx.conf文件。

# 用户组
user  nginx;# 工作进程数
worker_processes  1;# 日志路径和日志级别
error_log  /var/log/nginx/error.log warn;# 进程文件路径
pid        /var/run/nginx.pid;events {# 设置网路连接序列化accept_mutex on;# 一个进程是否同时接受多个网络连接multi_accept on;# 事件驱动模型use epoll;# 最大连接数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;# 是否开启高效文件传输模式sendfile        on;#tcp_nopush     on;# 长连接超时时间keepalive_timeout  65;# 响应客户端的超时时间send_timeout 75;#gzip  on;include /etc/nginx/conf.d/*.conf;#这里配置nacos的ip:端口,因为nginx和nacos在同一个网络下,这里可以用服务名访问upstream nacosUrl {server nacos1:8848 weight=1 max_fails=2 fail_timeout=10s;server nacos2:8848 weight=1 max_fails=2 fail_timeout=10s;server nacos3:8848 weight=1 max_fails=2 fail_timeout=10s;}server{listen 80; #nginx监听的端口server_name 10.10.20.100; #iplocation / {root   /usr/share/nginx/html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}location /nacos {proxy_pass http://nacosUrl/nacos;#proxy_set_header Host $host;#proxy_set_header X-Real-IP $remote_addr;#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#proxy_set_header REMOTE-HOST $remote_addr;#add_header X-Cache $upstream_cache_status;#add_header Cache-Control no-cache;}}
}

目录的效果图

tree

        最后目录的效果图,如下:

.
├── data
│   ├── cluster-logs
│   │   ├── nacos1
│   │   ├── nacos2
│   │   ├── nacos3
│   │   └── test_nacos
│   └── init.d
│       └── custom.properties
├── docker-compose.yml
├── env
│   ├── mysql.env
│   └── nacos-hostname.env
└── nginx└── nginx.conf

启动docker-compose

docker-compose up -d

总结

        至此,通过docker-comopose搭建nacos集群成功。通过访问如下url:http://ip:8848/nacos、http://ip:8811/nacos、http://ip:8822/nacos、http://ip:8833/nacos,判断是否启动nacos成功。

相关内容

热门资讯

A股异动丨避险情绪升温促金银价... A股市场黄金股强势,其中,四川黄金、招金黄金涨停,山金国际涨超6%,中金黄金、西部黄金涨超4%。 消...
服刑7年获判无罪,女商人林惠荣... 澎湃新闻记者 王选辉 1月19日,澎湃新闻从福建女商人林惠荣处了解到, 其向法院申请的国家赔偿,经漳...
康骨堂 骨质增生怎么保养 骨质增生(骨关节炎)可以通过多种方式进行保养和治疗,常见方法包括生活方式调整、物理疗法、非甾体抗炎药...
原创 中... 1月15日,中银基金发布公告称,联席投资总监(固定收益)邢科因个人原因离任。 公开资料显示,邢科于...
商汤在厦门成立智能开发公司 注... 天眼查工商信息显示,1月19日,厦门商汤智能开发有限公司成立,法定代表人为马堃,注册资本3000万美...
马斯克:AI5芯片设计基本完成... 近期,特斯拉CEO埃隆·马斯克密集披露芯片战略相关信息,这表明特斯拉正在调整其AI芯片与超级计算平台...
“俩西红柿要10块钱”?专家:... “俩西红柿要10块钱”“鸡蛋都快配不上西红柿啦”……近段时间,全国多地西红柿价格明显上涨,引发市场高...
圣贝拉集团今日股价涨超12%,... 1月19日,全球家庭护理行业龙头圣贝拉集团(股票代码:2508.HK)发布公告,正式宣布与服务机器人...
刘世锦:建议实施进出口基本平衡... 1月17日,中国环境与发展国际合作委员会中方首席顾问、国务院发展研究中心原副主任刘世锦在第二十七届北...
阳光电源逐光出海,锚定全球储能... 全球能源转型浪潮澎湃,储能作为构建新型电力系统的关键支撑,其战略地位日益凸显。在这场关乎未来能源格局...
封关整一个月,海南卖爆了 1 2025年12月18日,海南自贸港全岛正式封关。 今天是2026年1月19日,海南封关整整一个月...
容积率下调,体量23万㎡!福州... 海西房产网(微信公众号:fjhxfcw)消息:为传承弘扬“中国福州国际招商月”思想精髓,福州市招商办...
比格比萨赴港IPO,创始人赵志... 瑞财经 严明会 1月16日,比格餐饮国际控股有限公司(以下简称:比格比萨)递交招股书,冲击港股IPO...
罗永浩被禁言后现身颁奖典礼,领... 1月19日,罗永浩于谦拒领终身成就奖的相关话题登上热搜。 1月18日,在B站年度百大UP主颁奖典礼...
原创 G... 如果说欧盟是个戏班子,每次开会就像上演一场戏,那G7就更像是个马戏团,所有的成员都是戏精上身,开会时...
原创 赚... 最近,关于俄罗斯暂停对中国电力出口的消息引发了广泛的讨论。西方媒体迅速抓住这个机会,宣称中俄合作出现...
原创 指... 现阶段的市场已经进入到“降温”的调整时期,针对A股“易跌难涨”的特性,这个位置千万不要“空手接白刃”...