Nacos集群配置
version: "3"
services:
nacos1:
container_name: nacos-server01
hostname: nacos-server01
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=XXX
- MYSQL_SERVICE_PORT=XXX
- MYSQL_SERVICE_USER=XXX
- MYSQL_SERVICE_PASSWORD=XXX
- MYSQL_SERVICE_DB_NAME=nacos
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- 8846:8848
- 9848:9848
- 9555:9555
restart: on-failure
networks:
mynet:
ipv4_address: "192.168.2.1"
nacos2:
container_name: nacos-server02
hostname: nacos-server02
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=XXX
- MYSQL_SERVICE_PORT=XXX
- MYSQL_SERVICE_USER=XXX
- MYSQL_SERVICE_PASSWORD=XXX
- MYSQL_SERVICE_DB_NAME=nacos
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- 8847:8848
- 9849:9848
restart: on-failure
networks:
mynet:
ipv4_address: "192.168.2.2"
nacos3:
container_name: nacos-server03
hostname: nacos-server03
image: nacos/nacos-server:2.0.3
environment:
- MODE=cluster
- PREFER_HOST_MODE=hostname
- NACOS_SERVERS=nacos-server01:8848 nacos-server02:8848 nacos-server03:8848
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST= XXX
- MYSQL_SERVICE_PORT=XXX
- MYSQL_SERVICE_USER=XXX
- MYSQL_SERVICE_PASSWORD=XXX
- MYSQL_SERVICE_DB_NAME=nacos
- JVM_XMS=128m
- JVM_XMX=128m
- JVM_XMN=128m
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- 8850:8848
- 9850:9848
restart: on-failure
networks:
mynet:
ipv4_address: "192.168.2.3"
networks:
mynet:
external: true
集群麻,最少也要3个,这里使用了自定义网段,不需要的可以去掉
Nginx配置
docker-compose.yaml
version: '3'
services:
nginx-ssl:
image: "nginx"
container_name: nginx-nacos
restart: always
ports:
- 8091:8091
volumes:
- ./conf/log:/etc/nginx/logs
- ./conf/www:/etc/nginx/html
- ./conf/ssl:/cert
- ./conf/nginx.conf:/etc/nginx/nginx.conf
networks:
mynet:
ipv4_address: "192.168.0.4"
networks:
mynet:
external: true
nginx.conf
#user nobody;
worker_processes 8;
worker_rlimit_nofile 12000;
events {
use epoll;
worker_connections 12000;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on
#负载均衡
upstream nacos-cluster {
#如果是外网连接的需要将127.0.0.1换成自己的域名,且需要开放防护墙
server 127.0.0.1:8846 weight=1 max_fails=2 fail_timeout=10s;
server 127.0.0.1:8847 weight=1 max_fails=2 fail_timeout=10s;
server127.0.0.1:8850 weight=1 max_fails=2 fail_timeout=10s;
}
server {
listen 8091;
server_name localhost; #换成自己的域名
#把http的域名请求转成https
location /nacos {
proxy_pass http://nacos-cluster;
}
}
}
这里值得注意的是,你在docker里面给nginx容器开放了哪些端口,nginx就只能代理哪些端口,比如这里只开放了8091,故该容器里的nginx只能代理这个服务器的8091端口
一个集群吃了1G内存,真的吐了