在ubuntu系统服务器中,部署nginx和nacos集群,使用nginx反向代理nacos集群,最后在本地,通过springcloud,通过nginx代理的url,注册服务。
环境版本:
ubuntu18.04
nginx 1.25.2
nacos 2.2.3
springcloudalibaba 2.2.9.RELEASE
springboot 2.2.2.RELEASE
官网下载:https://github.com/alibaba/nacos/releases
#安装指令
tar -zxvf nacos-server-2.2.3.tar.gz
cd /nacos/conf
先将其中的mysql-schema.sql中的内容复制本地,先在mysql中创建库nacos-config,再在mysql中执行该数据库脚本。
接着修改applicaiton.properties,如下所示
vim application.properties
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://IP:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=数据库账号
db.password.0=密码
添加nacos集群节点
vim cluster.conf
添加nacos节点:IP地址+端口号
如192.168.56.7:3333
添加三个nacos节点
复制三个nacos文件
cp /文件路径/nacos /文件路径/nacos-3333
cp /文件路径/nacos /文件路径/nacos-4444
cp /文件路径/nacos /文件路径/nacos-5555
依次修改nacos-3333、nacos-4444和nacos-5555中的application.properties,如
cd nacos-3333/conf
vim application.properties
server.port=3333
依次开启nacos-3333、nacos-4444和nacos-5555服务,如
cd /nacos/bin
./startup.sh
#查看是否开启nacos
ps -ef | grep nacos
#查看nacos开启数量
ps -ef|grep nacos|grep -v grep | wc -l
如果服务器内存不够,可以修改application.proeperties中的JVM参数
if [[ "${MODE}" == "standalone" ]]; then
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
fi
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
fi
#将-server -Xms2g -Xmx2g -Xmn1g 改小
#例如改为和standalone模式相同,-Xms512m -Xmx512m -Xmn256m
官网下载:http://nginx.org/en/download.html
尽量下载较新版本,以防出现各种bug
#安装相关依赖
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
apt-get install openssl
apt-get install libssl-dev
#解压安装包
tar -zxvf nginx-1.25.2.tar.gz
#进入被解压文件目录,并设置安装配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#编译安装
make & make install
#修改安装路径下的nginx.conf文件
vim /conf/nginx.conf
#与上述nacos服务的端口对应
upstream cluster {
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
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;
}
#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 html;
}
}
因为nacos1.x版本到2.x版本的改动,https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.html
需要在ngnix配置文件中,需要增加如下配置,否则集成到IDEA中时会报错
stream{
upstream nacos-cluster{
server 127.0.0.1:4333 weight=1;
server 127.0.0.1:5444 weight=1;
server 127.0.0.1:6555 weight=1;
}
server{
listen 2111;
proxy_pass nacos-cluster;
}
}
cd sbin
./nginx
nginx反向代理nacos集群的示例