Openresty Nginx 负载均衡

目录

OpenResty

Openresty 服务配置文件

启动Openresty服务

测试调用接口

Nginx 负载均衡服务

nginx 配置文件

启动服务

实现功能

测试结果


 

这里实现个简单的负载均衡,只做功能展示(实际业务比这复杂高,单台服务器无法满足需求的情况下,才会进行负载均衡)

OpenResty

用Openresty实现日志功能

Openresty 服务配置文件

lua 文件

-- 引入lua json库
local cjson = require "cjson"
-- 获取请求参数
local request_args_tab = ngx.req.get_uri_args()
-- 获取系统时间
local time = os.date("%Y%m%d",unixtime)
-- 创建file对象
local file = io.open("ho-data/ho-".. time  ..".log","a")
-- 创建json对象
local log_json = {}
-- 将请求参数转为json
for k,v in pairs(request_args_tab) do log_json[k] = v
end
-- json数据写入文件,并\n换行
file:write(cjson.encode(log_json),"\n")
file:flush()

nginx.conf 文件

worker_processes  1;
error_log logs/error.log;
events {worker_connections 1024;
}
http {server {client_header_buffer_size  512m;large_client_header_buffers 4 512m; lua_need_request_body on;lua_code_cache off;listen 12199;location /log.gif {#internal;default_type image/gif;access_log off;log_by_lua_file 'conf/log_conf.lua';empty_gif;}location /jast {log_by_lua_file conf/jast_conf.lua;content_by_lua '#用三台服务器做测试,调用接口后使用jast_conf.lua处理数据,处理完成并返回对应服务器标识ngx.say("hello,89")	#ngx.say("hello,44")	#ngx.say("hello,121")	';	    }}
}

启动Openresty服务

/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast_log -c conf/nginx.conf 

测试调用接口

[root@ecs-001 jast]# curl 172.16.0.89:12199/jast?userid=123&action=read&date=160000000
hello,89
[root@ecs-002 jast]# curl 172.16.0.121:12199/jast?userid=123&action=read&date=160000000
hello,121
[root@ecs-002 jast]# curl 172.16.0.44:12199/jast?userid=123&action=read&date=160000000
hello,44

Nginx 负载均衡服务

nginx 配置文件

worker_processes  4;
error_log logs/error.log;
events {worker_connections 1024;
}
http {upstream jast.loadBalance{server 172.16.0.44:12199 weight=1;server 172.16.0.121:12199 weight=1;server 172.16.0.89:12199 weight=1;}server {client_header_buffer_size  512k;large_client_header_buffers 4 512k;lua_need_request_body on;lua_code_cache off;listen 2199;location / {proxy_pass http://jast.loadBalance;}}
}

启动服务

/usr/local/openresty/nginx/sbin/nginx -p /root/openresty/openresty-1.15.8.2/jast -c conf/nginx.conf

实现功能

调用2199端口,自动负载均衡到44:12199,121:12199,89:12199三台服务器的服务中

测试结果

测试调用2199端口,我们只有2199开通了外网端口

返回结果如下,说明我们自动将请求分发了

第1次请求	Hello,121第2次请求	Hello,44第3次请求	hello,89第4次请求	Hello,121第5次请求	Hello,44第6次请求	hello,89第7次请求	Hello,121第8次请求	Hello,44第9次请求	hello,89第10次请求	Hello,121第11次请求	Hello,44第12次请求	hello,89第13次请求	Hello,121第14次请求	Hello,44第15次请求	hello,89第16次请求	Hello,121第17次请求	Hello,44第18次请求	hello,89第19次请求	Hello,121第20次请求	Hello,44

 

这个网站有些基本介绍:https://moonbingbing.gitbooks.io/openresty-best-practices

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总结--美丽的敷衍

我看新年 转眼间,2015已经悄然离去,正像2015年刚来时候感叹2014的白驹过隙。年年岁岁花相似,岁岁年年人不同。时间过去了,自己又有如何的不同呢?客观的说,这一年有了一定的长进,但总感觉失去/错…

Hadoop Yarn REST API未授权漏洞利用挖矿分析

目录 一、背景情况 二、 漏洞说明 攻击步骤: 三、入侵分析 四、安全建议 清理病毒 安全加固 五、IOCs 一、背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况…

读书-悟

作者:梅芳growing链接:https://www.zhihu.com/question/20689852/answer/95018631来源:知乎著作权归作者所有,转载请联系作者获得授权。《暗时间》这本书,我读过3遍,第一便是在大三时,第二遍是用…

Linux shell编程学习总结

主要内容&#xff1a; shell编程sed命令awk命令crontab定时器 什么是Shell&#xff1f; Shell是用户与内核进行交互操作的一种接口&#xff0c;目前最流行的Shell称为bash Shell Shell也是一门编程语言<解释型的编程语言>&#xff0c;即shell脚本 一个系统可以存在多…

Flink ProcessFunction 介绍使用

目录 实现功能 代码 测试 问题 官网描述&#xff1a;https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/operators/process_function.html The ProcessFunction is a low-level stream processing operation, giving access to the basic build…

Flink keyby 数据倾斜问题处理

上一篇我们使用keyby后发现数据严重倾斜 https://datamining.blog.csdn.net/article/details/105316728 大概看下问题所在&#xff0c;大量数据在一个subtask中运行 这里我们使用两阶段keyby 解决该问题 之前的问题如下图所示 我们期望的是 但我们的需要根据key进行聚合统计&a…

java中正则表达式

package com.test;import java.util.Scanner;public class M1001{public static void main(String[] args) {String input null;Scanner sc new Scanner(System.in);while(sc.hasNext()){inputsc.nextLine();String regex "^1[3|4|5|7|8][0-9]{9}$";//为表达式模板…

读书-时间(反思)

每一天的时间都非常多&#xff0c;下班以后的时间&#xff0c;周末闲暇的时间&#xff0c;但是时间这么多&#xff0c;自己往往不知道该拿它来干什么&#xff0c;每天下完班以后&#xff0c;回到家&#xff0c;打开电脑&#xff0c;打开手机&#xff0c;首先看一看QQ&#xff0…

Kafka 优化参数 unclean.leader.election.enable

Kafka 某个节点挂掉&#xff0c;导致整个服务异常&#xff0c;为了保证服务容灾&#xff0c;可对下面几个参数进行调整 unclean.leader.election.enabletrue min.insync.replicas1 offsets.topic.replication.factor3 这三个配置什么意思呢? 依次来看一下&#xff1a; unclean…

linux中iptables对防火墙的操作

Iptables教程 1. iptables防火墙简介 Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具&#xff0c;它的功能十分强大&#xff0c;使用非常灵活&#xff0c;可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中…

读书--好书

说到好书&#xff0c;我觉得对于每一个人来说&#xff0c;都有自己人生中的一本好书&#xff0c;她的内容能够引起我们的共鸣&#xff0c;认识到自己的不足之处&#xff0c;并且能够指引我们如何去改变它&#xff0c;去战胜它&#xff0c;从而使自己获取进步&#xff0c;得到升…

Web Components入门不完全指北

目前流行的各类前端框架&#xff0c;不管是react, angular还是vue&#xff0c;都有一个共同点&#xff0c;那就是支持组件化开发&#xff0c;但事实上随着浏览器的发展&#xff0c;现在浏览器也原生支持组件式开发&#xff0c;本文将通过介绍Web Components 的三个主要概念&…

Flink 1.9 CDH 6.3 集成

目录 1.下载准备文件 2.felink csa jar包准备 3.将 Flink Parcel放入httpd目录下 4.配置CDH Flink Parcel 5.安装Flink 1.下载准备文件 https://archive.cloudera.com/csa/1.0.0.0/csd/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0.jarhttps://archive.cloudera.com/csa/1.0.0.0/parc…

如何花两年时间面试一个人

http://blog.sina.com.cn/s/blog_4caedc7a0102dycr.html?tj1

ssh免密登陆机制示意图

ssh免密登陆机制示意图

CDH 6.x 安装 Phoenix 服务

最近有个新项目启动&#xff0c;版本升级到6.3&#xff0c;发现CDH6.2 版本已经支持Phoenix parcel安装 一、准备文件 下载 https://archive.cloudera.com/phoenix/6.2.0/csd/PHOENIX-1.0.jar 下载parcel #目录 https://archive.cloudera.com/phoenix/6.2.0/parcels/ #根据…

Kafka 集群数据备份 MirrorMaker 详解

什么是 MirrorMaker&#xff1f; MirrorMaker是Kafka附带的一个用于在Kafka集群之间制作镜像数据的工具。该工具主要动作就是从源集群中消费并生产到目标群集。 一个集群可以启动多个MirrorMaker配置到多个集群 运行 MirrorMaker方法 kafka-mirror-maker.sh --consumer.conf…

面试的态度

关于面试&#xff0c;如果到了面试现场&#xff0c;可能环境并不是自己所希望的那样&#xff0c;但是也不能消极对待&#xff0c;既然自己付出了时间来到这里&#xff0c; 公司对方也安排了时间给予你面试&#xff0c;不管是本着对自己的负责&#xff0c;还是对公司面试人员的…