系统相关
首页 > 系统相关> > 【大数据开发】Nginx做负载均衡,在生产环境上进行蓝绿发布

【大数据开发】Nginx做负载均衡,在生产环境上进行蓝绿发布

作者:互联网

在某公司的大数据研发中心待了一年,感觉这一年是在慢慢从Java开发转型为Java大数据开发。是因为做了一年的数据开发吧(数据采集、ETL、元数据、主数据分发、数据中台也只是在建设而已)。慢慢把转型所需要的技术写成博客记录下来。

背景:在主数据分发的项目,因为主数据是指基本不变的实体数据(人员、组织机构、重大项目等)、隐私数据较多所以要在用Java来搭建服务端去做统一接口分发,接口的安全性使用公私钥签名请求、加密响应。安全性做到了,效率也得跟上,故使用了Nginx做接口服务的负载均衡。

背景说完了,下面是Nginx的配置,Nginx的安装在上一篇文章了Nginx安装

修改一下nginx的配置:

vim conf/nginx.conf

在server{的上面加一个行导入自己的小配置:

include conf.custom/*.conf;

当然也可以把整个server{}删掉,总配置就引入我们自己的自定义配置就好,server在自定义配置里面做。(以下80端口我在自定义配置用了,如果不删的话下面就不能用80)

刚才我们引入的 conf.custom/*.conf;是相对路径,那我们就必须在conf这个目录下新建conf.custom和建立一个conf后缀的配置文件

mkdir conf.custom
cd conf.custom
vim api.conf

这个api.conf要配置的东西就是nginx要处理的http了,先配个简单的负载吧,将ip/api转发到内网的http:127.0.0.1:8080去。只输入ip的话可以验证我们这个配置是否成功。

upstream apiserver {
    server 127.0.0.1:8080 weight=1;
}
server {
    listen 80;
    location / {
        root   html;
        index  index.html index.htm;
    }
    location /api/ {
       proxy_pass http://apiserver/;
   }
}
nginx -s reload

命令有可能出现的两个问题:

如果没问题 那就可以访问了。

这会应该去给8080端口加进程了,那就外置tomcat吧.三个tomcat都是复制就行了。

注:tomcat的端口在conf/server.xml里面配,要配启动端口 和 shutdown="SHUTDOWN"的端口这两个。

确定都部署在端口了 如(8080、8081、8082)就去改我们的api.conf配置

nginx -s reload

不同端口不同进程的服务,应该要在内实现一个接口去查看server-name来标识一下。

蓝绿部署

首先把一些slave从负载均衡中摘除,进行新版本的部署。其他仍然继续提供服务

在Nginx中摘除的命令就是

每次down一个之后执行

nginx -s reload

 就可以去部署了,部署完之后把down改成 weight=1,下一个部署的改成down。

标签:负载,nginx,蓝绿,端口,server,Nginx,api,conf
来源: https://blog.csdn.net/q466547450/article/details/104830182