Ubuntu中结合Nginx配置nacos集群

一、软件版本

Ubuntu-20.04
Mysql-8.0.28
Nginx-1.20.2
nacos-1.1.4

二、安装Nginx-1.20.2

2.1 首先安装一些依赖

$ sudo apt-get install gcc
$ sudo apt-get install libpcre3 libpcre3-dev
$ sudo apt-get install zlib1g zlib1g-dev
$ sudo apt-get install openssl 
$ sudo apt-get install libssl-dev

2.2 安装Nginx

$ tar -zxvf nginx-1.20.2.tar.gz
$ cd nginx-1.20.2
$ sudo ./configure
$ sudo make
$ sudo make install
$ cd /usr/local/nginx/sbin

启动nginx

$ sudo ./nginx

启动成功在浏览器输入localhost:80进入Nginx欢迎界面

三、安装mysql-8.0.28

$ sudo apt-get update
$ sudo apt-get install mysql-server

启动mysql服务

$ sudo service mysql start

首先查询初始账户和密码

$ sudo cat /etc/mysql/debian.cnf
显示以下信息
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = FgHMpbAOLayTb7Fu
socket   = /var/run/mysqld/mysqld.sock

进入数据库

$ mysql -u debian-sys-maint -p
输入上面对应的密码
mysql> use mysql;
修改默认的账号和密码,我这里设置账户:root,密码:root
mysql>ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’;
然后下次进入就输入root和root就行了

四、安装配置单机版nacos集群

4.1 配置application.properties文件

$ tar -zxvf nacos-server-1.1.4.tar.gz 
这里是在一台虚拟机上配置nacos三节点集群
把解压出来的文件夹拷贝三份
我这里三个节点分为端口分别设为8849,8850,8851
nacos
nacos1
nacos2
$ cd nacos

更改数据库配置,切换为mysql8

$ cd conf
$ sudo vim application.properties
以下为文件部分内容
修改server.port的自定义端口,这里修改为8849
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8849
在文件末尾添加mysql配置,根据自己的账户密码修改,我这里是root,root
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=root
最后保存文件退出

4.2 mysql运行nacos的sql

切换到刚刚的数据库那里

首先创建一个数据库nacos_config
mysql>create database nacos_config;
切换到nacos_config数据库
mysql>use nacos_config;
运行nacos-mysql.sql文件
路径在 自己的路径/nacos/conf/nacos-mysql.sql
mysql>source 自己的路径/nacos/conf/nacos-mysql.sql
执行成功后运行以下命令
mysql>show tables;
出现以下表则成功:
+------------------------+
| Tables_in_nacos_config |
+------------------------+
| config_info            |
| config_info_aggr       |
| config_info_beta       |
| config_info_tag        |
| config_tags_relation   |
| group_capacity         |
| his_config_info        |
| roles                  |
| tenant_capacity        |
| tenant_info            |
| users                  |
+------------------------+
11 rows in set (0.00 sec)

4.3 配置mysql8特有步骤:需要引入mysql-connector-java-8.0.28.jar包

进入nacos根目录
$ cd nacos
$ sudo mkdir plugins
$ cd plugins
$ sudo mkdir mysql
在mysql文件夹中把mysql-connector-java-8.0.28.jar下载好放入其中

4.4 配置cluster.conf文件

$ cd nacos/conf
首先把cluster.conf.example文件拷贝为cluster.conf
$ sudo cp cluster.conf.example cluster.conf
$ sudo vim cluster.conf
在文件中添加以下内容,配置为集群三个节点
127.0.0.1:8849
127.0.0.1:8850
127.0.0.1:8851

4.5 配置startup.sh启动文件

$ cd nacos/bin
$ sudo vim startup.sh
以下为文件部分内容
首先注释文件中四行JAVA_HOME,然后添加自己的JAVA_HOME,根据自己的自行更改,我这里为/usr/java/jdk1.8.0_321
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
JAVA_HOME=/usr/java/jdk1.8.0_321

(选配)如果内存不足可以更改JVM参数,我这里修改为了Xms256m -Xmx256m -Xmn128m
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

4.6 配置Nginx结合nacos

回到之前的nginx文件夹
$ cd nginx/conf
$ sudo vim nginx.conf
以下为文件部分内容
在#gzip  on;下面添加以下内容
upstream cluster{
    server 127.0.0.1:8849;
    server 127.0.0.1:8850;
    server 127.0.0.1:8851;
}
修改listen的默认端口80为自定义的1111端口(自己设定),访问的时候需要防火墙开放端口号
location中注释前两行,添加proxy_pass http://cluster;
server {
        listen       1111;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://cluster;
        }
修改完成保存退出

重启Nginx

4.7其余两个拷贝的nacos文件修改application.properties文件

分别修改server.port的自定义端口,一个修改为8850
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8850

另一个修改为8851
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8851

4.8 启动三个nacos

启动第一个nacos
$ cd nacos/bin
$ sudo bash startup.sh
启动第二个nacos
$ cd nacos1/bin
$ sudo bash startup.sh
启动第三个nacos
$ cd nacos2/bin
$ sudo bash startup.sh
通过以下命令显示为3表示成功启动三个nacos
$ ps -ef|grep nacos|grep -v grep|wc -l
最后在Ubuntu系统浏览器里面访问localhost:1111/nacos
或者通过ifconfig获取Ubuntu ip地址,在windows浏览器中输入ip地址:1111/nacos
看到以下界面,则运行成功

nginx代替NAT nginx nas_spring cloud