从0到1,手把手教你搭建一个Nginx+MySQL+Nacos集群

因为阿里云学生机内存1G太寒酸,当我启动第二个Nacos的时候,机器就躺尸了,不得不切换到虚拟机上操作,nacos全部放在了一台虚拟机上面,算一个伪集群吧,本文基于CentOS8+MySQL8,从01一步步记录,欢迎交流

1、配置JDK

#切换root用户
su root
#安装jdk
yum install -y java-1.8.0-openjdk*

安装完成,jdk默认安装路径为/usr/lib/jvm

#获取jdk安装目录列表,复制jdk程序根目录
ls /usr/lib/jvm
#获取目录如下
java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.x86_64

配置环境变量

vim /etc/profile
#内容如下
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.x86_64

PATH=$PATH:$JAVA_HOME/bin 

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

export JAVA_HOME CLASSPATH PATH

image-20210221105408384

#刷新配置
source /etc/profile

2、下载Nacos

切换到opt目录,执行下载

wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz

image-20210221105712521

#解压
tar -zxvf nacos-server-1.4.1.tar.gz
#将nacos复制到新建的文件夹
cp -r nacos /mynacos/

3、配置MySQL

#下载MySQL源
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
#安装MySQL源
rpm -Uvh mysql80-community-release-el8-1.noarch.rpm 
#安装MySQL
yum install mysql-server 
#启动
systemctl start mysqld.service
#进入MySQL 初始无密码
mysql -u root -p

image-20210221110235494

#修改密码
alter user 'root'@'localhost' IDENTIFIED BY '123456';
#刷新配置
FLUSH PRIVILEGES;
#退出重新进入
exit
mysql -uroot -p
#授予外部访问权限,否则navicat无法连接
create user mysql_user;
GRANT ALL ON *.* TO 'mysql_user'@'%';
ALTER USER 'mysql_user'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';
flush privileges;

使用navicat连接测试,使用之前记得开放虚拟机的3306端口,供外部访问,这里一不做二不休,直接关掉防火墙

systemctl stop firewall.service
#获取本机内网地址,navicat通过此地址可连接
hostname -i

image-20210221111125283

nacos官方提供的SQL语句初始化执行到MySQL中,创建nacos数据库,执行SQL语句,在这之前,务必保证你已经创建好了一个空的,名称为nacos的数据库。

image-20210221111348027

扫描二维码关注公众号,回复: 12733532 查看本文章

4、Nacos配置集群

思考一个问题,我没启动nacos是直接./startup.sh,并没有指定端口号,但是现在我们要搭建一个nacos集群,他们的端口号需要区分出来才行。

#备份官方全局配置文件application.properties
cp application.properties application.properties.init
#备份官方的集群配置文件cluster.cong
cp cluster.conf.example cluster.conf

编辑application.properties,设置数据库参数

image-20210221112017726

编辑cluster.conf,配置集群端口号

image-20210221112240826

编辑startup.sh脚本,本来我以为新版的nacos已经做到了自定义端口,但是一直运行不出来,就尝试修改这个脚本文件,事实是最后确实通过了测试

  • 第一步,将这个分支语句的p分支修改为如下语句,目的是运行的时候传入一个参数-p,这个参数传递给PORT
PORT=$OPTARG;;

image-20210221160302122

  • 第二步,将获取到的参数赋值给Dserver.port
-Dserver.port=${PORT}

image-20210221160640107

5、配置Nginx

#安装pcre
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
#解压
tar -zxvf pcre-8.37.tar.gz
#安装gcc
yum install -y gcc gcc-c++
#进入pcre目录执行configure
./configure
#make
make && make install
#安装其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
#安装Nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz
#解压
tar -zxvf nginx-1.10.2.tar.gz 
#configure
./configure
#make
make && make install

make报错:

image-20210221140338304

编辑nginx/objs目录下的Makefile文件

image-20210221140135300

删除-Werror

image-20210221140305078

重新make

make && make install

再次报错

image-20210221140546650

注释图中语句

vim src/os/unix/ngx_user.c

image-20210221140710662

再次make

image-20210221140851564

进入nginx解压后的文件夹,进入conf,将配置文件复制一份,然后编辑nginx.conf。找到按图所示,修改三处。

cp nginx.conf nginx.conf.init

image-20210221160022671

6、安装Maven

官方文档让装maven,我不知道这儿有啥用,我就装上了。

#下载
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
#解压
tar vxf apache-maven-3.3.9-bin.tar.gz
#移动
mv apache-maven-3.3.9 /usr/lib/maven
#环境变量
export MAVEN_HOME=/usr/lib/maven
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
#检查是否成功
mvn -v  

7、测试

直接一不做二不休,停止防火墙

systemctl stop firewall.service
./startup.sh -p 3333
./startup.sh -p 4444
./startup.sh -p 5555

image-20210221113712422

#进入usr/local/nginx/sbin目录,启动nginx服务
./nginx -c /etc/nginx/nginx-1.10.2/conf/nginx.conf

image-20210221160057812

打开微服务9001,修改nacos服务地址

image-20210221161109504

修改完毕,启动,打开nacos控制台查看

image-20210221161247260

尝试新增一个配置文件

image-20210221161337948

前往数据库查看

image-20210221161404117

大功告成

过程确实不易,大概花了小半天才搭好,报错不要紧,要会去分析nginxnacoserrorlog,这些都是排查问题的途径,春招快开始了,原计划想再搭一个基于docker-composenacos集群,但是时间真的不允许了。。。

猜你喜欢

转载自blog.csdn.net/qq_43509535/article/details/113919572