ps: 我使用的是docker配置nginx、nacos、mysql 步骤有点复杂 作此记录
Mysql配置
#1、下载mysql5.7
docker pull mysql:5.7
#2、启动mysql
docker run --name mysql5.7 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
--name取别名
-d后台运行
-p 把容器的3306端口与主机3306端口做映射
-e 传递环境变量 MYSQL_ROOT_PASSWORD=123456设置mysql密码
#3、进入mysql
mysql -uroot -p123456
默认root用户名
Nacos配置
#1、下载nacos
docker pull nacos/nacos-server
#2、创建nacos在主机上挂载的配置文件目录
mkdir -p /usr/etc/nacos
#3、启动nacos容器(才会自动生成cluster.conf文件)
docker run --name nacos -d -p 8848:8848 nacos/nacos-server
#4、拷贝nacos容器配置文件
docker cp [容器id/容器别名]:/home/nacos/conf /usr/etc/nacos
#5、修改主机挂载目录的application.properties及cluster.conf文件
1、application.properties
#添加以下内容 请将ip及用户名、密码更改为自己的
`
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.0.113:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
`
2、cluster.conf
#配置三台nacos 端口号分别为 3333 4444 5555
#该ip必须为hostname -i命令显示的ip地址
`
192.168.0.113:3333
192.168.0.113:4444
192.168.0.113:5555
`
#6.启动(默认MODE=cluster集群模式)
docker run --name nacos-3333-pay-cloud -d -p 3333:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
docker run --name nacos-4444-pay-cloud -d -p 4444:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
docker run --name nacos-5555-pay-cloud -d -p 5555:8848 -v /usr/etc/nacos/conf/:/home/nacos/conf -e JVM_XMS=256m -e JVM_XMX=512m -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVER_IP=192.168.0.113 nacos/nacos-server:1.3.2
-v 挂载目录
ps:如果出现启动容器后 容器状态为exited(1) 有可能是虚拟内存不足引起的
遇到一个问题:nacos一直启动不成功
用docker logs nacos-3333-pay-cloud查看日志得知nacos找不到mysql端口号
启动时使用 -e MYSQL_SERVICE_PORT=3306即可正常启动
Nginx配置
#1、下载nginx
docker pull nginx
#2、启动nginx
docker run -d nginx
#3、拷贝配置文件到主机
docker cp nginx:/etc/nginx /usr/etc
#4、更改主机/usr/etc/nginx/conf.d/default.conf文件
`
upstream cluster{ #新增
server 192.168.0.113:3333;
server 192.168.0.113:4444;
server 192.168.0.113:5555;
}
server {
listen 1111; #改动
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html; #改动
#index index.html index.htm; #改动
proxy_pass http://cluster #改动
}
`#5、启动nginx
docker run --name nginx-1111-pay-cloud -d -p 1111:1111 -v /usr/etc/nginx/conf.d:/etc/nginx/conf.d nginx
测试
至此,配置就完成了。
通过192.168.0.113:1111/nacos/#/login访问成功~
新建工程 在application.yml中配置
#其余无关配置省略
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.0.113:1111
这个配置客户端报错 但nacos后台可以看见注册的实例 也可以拿到nacos上的配置信息…
failed to req API:/nacos/v1/ns/instance after all servers([192.168.0.113:1111]) tried:
failed to req API:192.168.0.113:1111/nacos/v1/ns/instance. code:500 msg:
java.net.SocketTimeoutException: Read timed out
究其原因 再研究研究把