nacos集群化部署,nginx(docker版)步骤详解

1.配置环境
nacos版本:1.4.1
linux:centos7
linux配置:内存4G,防火墙已关闭(如果是云服务器记得开放防火墙端口,切记!!)
JDK版本1.8
工具:xshell、xftp

2.环境部署
naocos下载地址
nacos安装包某盘资源地址
提取码:gh84
选择linux的tar包
在这里插入图片描述
安装JDK1.8环境教程
将nacos安装包放入root文件夹下并解压,如下图
在这里插入图片描述
3.切换mysql持久化
将nacos-mysql.sql的sql语句在自己的mysql的nacos_config数据库中执行
可以参考之前发的nacos持久化配置windos版的和linux大相庭径
参考链接

4.文件配置和修改
application.properties如下图
在这里插入图片描述
在该文件的结尾添加下面两块代码

spring.datasource.platform=mysql
db.num=1//数据库数量
db.url.0=jdbc:mysql://192.168.35.128:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
//数据库连接信息,?后面的请参照这个就是官网给出的
db.user=root//用户名
db.password=123456//密码

查看本机IP

hostname -i 

在这里插入图片描述
修改cluster.conf
在这里插入图片描述
使用我们刚刚查找的主机名添加 3333,4444,5555 端口
在这里插入图片描述
修改startup.sh
在这里插入图片描述
修改如下

i)
    PORT=$OPTARG;;

在这里插入图片描述

nohup J A V A − D s e r v e r . p o r t = JAVA -Dserver.port= JAVADserver.port={PORT} ${JAVA_OPT} nacos.nacos >>
${BASE_DIR}/logs/start.out 2>&1 &
注意-和JAVA之间有空格
在这里插入图片描述

5.启动nacos
在bin文件夹路径下执行启动命令

./startup.sh -i 3333   //-i 的 i是我们上面配置的

这里启动我碰到了内存不足的导致启动失败的问题
两种方案:1.增加本机内存 2.修改启动文件减少内存配置
增加内存就不多说了
修改启动文件startup.sh如下图
在这里插入图片描述
这个问题解决后重新执行启动命令 3333 4444 5555 都是一样的
启动完成后检查有几个nacos启动了

ps -ef|grep nacos|grep -v grep |wc -l  

在这里插入图片描述
如上图发现有3个说明启动成功了

6.启动nginx和配置nginx
由于我对nginx的配置不是很熟,所以下面会写的比较详细,注意这是使用docker进行nginx启动的。(其实好像也都差不多)

下载nginx docker pull nginx 下载最新版的就可以了

先不用做任何配置直接启动nginx就可以

docker run -d --name mynginx -p 80:80 nginx

先访问一下看看有没有启动,这一步主要想验证一下这个镜像的文件是否可以启动成功
在这里插入图片描述

然后先创建一下我们的nginx目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建以上几个文件夹

进入刚刚的启动的nginx容器进行文件拷贝

docker run -i -t nginx /bin/bash

nginx.conf 的文件路径为

/etc/nginx/nginx.conf

default.conf的文件路径

/etc/nginx/conf.d/default.conf

默认首页文件夹html路径

/usr/share/nginx/html

如何找这些文件可以参考这篇博客
参考链接

然后进行找到上面的文件拷贝:拷贝格式如下

docker cp cd8d78fc01ec :/etc/nginx/nginx.conf /server/nginx/conf

docker cp 为docker 文件拷贝命令
cd8d78fc01ec 为上面启动nginx 的容器id
:/etc/nginx/nginx.conf 为我们在nginx镜像中找到的nginx.conf文件路径
/server/nginx/conf 为我们创建存放文件的地址

然后default.conf、index.html 文件也像这样的格式进行拷贝

拷贝完成后我们的我们拷贝出来的nginx的nginx.conf 和 default.conf进行修改
至于index.html首页展示是否需要修改随意

进行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;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

图片展示
在这里插入图片描述

default.conf 修改后

upstream cluster{
    server  192.168.35.128:3333;
    server  192.168.35.128:4444;
    server  192.168.35.128:5555;
}
server {
    listen       1111;
    listen  [::]:1111;
    server_name  192.168.35.128;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #root   /usr/share/nginx/html;
        #index  index.html index.htm;
        proxy_pass http://cluster;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

图片展示注解
在这里插入图片描述

这些都配置完成后说明我们的nginx配置就完成了

现在使用docker进行nginx启动并且挂载配置文件

这里如果之前nginx启动没有关闭的现在关闭一下

docker stop nginx容器id //停止之前的nginx 
docker rm nginx容器id //删除之前的nginx

启动nginx 并且挂载我们自己的配置文件(/server/nginx下面的)

docker run --name mynginx -d -p 1111:1111 -v
/server/nginx/html:/usr/share/nginx/html -v
/server/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v
/server/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v
/server/nginx/logs:/var/log/nginx nginx

注意 -v 前后都有空格

docker run : docker启动命令
–name : 给启动容器设置别名
mynginx : 别名
-d : nginx 需要挂载的版本 这个我们写到了最后面 就是最后面的nginx 由于是最新版本就可以这样写,如果是1.17.1这样的需要进行 nginx:1.17.1 这样的格式编写
-p 1111:1111 端口映射
-v :这个可以理解成将容器中某个文件替换成我们指定路径的文件,但是书写的顺序需要相反如下
/server/nginx/html:/usr/share/nginx/html :/server/nginx/html 我们的配置文件路径 , 、:/usr/share/nginx/html 容器的文件路径

启动完成后查看是否启动成功

docker ps -a

如果显示失败请查看日志

docker logs 容器id

如果启动成功访问

http://192.168.35.128:1111/nacos/#/login

成功页面,用户名密码都是nacos
在这里插入图片描述

这样就配置完了,大概历时了一个月,很多东西之前都不会,可能写的会有遗漏,可以给我留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值