【大数据开发】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