.net core webapi使用nginx实现集群和负载均衡
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了.net core webapi使用nginx实现集群和负载均衡,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3209字,纯文字阅读大概需要5分钟。
内容图文
第一步:先编写webapi接口:
接口介绍:
1、接口采用appkey和appsecret
2、访问的话,在报文头加上,appkey和sign。
1、sign由请求地址(例如:http://www.xxx.com/api/user/xx/,那么地址是/api/user/xx/)+appsecret+queryString或者报文体使用SHA1散列算法得出。
Filter代码:
1 string appKey = "fjdsakljg"; 2 string appSecret = "dfhdjsklahfkdsbgkfdhtu"; 3 4 public void OnAuthorization(AuthorizationFilterContext context) 5 { 6 string method = context.HttpContext.Request.Method.ToLower(); 7 string path = context.HttpContext.Request.Path.Value; 8 string thSign = ""; 9 StringValues appkeys; 10 StringValues signs; 11 if (!context.HttpContext.Request.Headers.TryGetValue("appKey", out appkeys)) 12 { 13 context.Result = new JsonResult(new APIResult<int> { Code = 1, Message = "appkey不存在" }); 14 return; 15 } 16 if (!context.HttpContext.Request.Headers.TryGetValue("sign", out signs)) 17 { 18 context.Result = new JsonResult(new APIResult<int> { Code = 1, Message = "sign不存在" }); 19 return; 20 } 21 string sign = signs.First(); 22 string key = appkeys.First(); 23 if (key != appKey) 24 { 25 context.Result = new JsonResult(new APIResult<int> { Code = 1, Message = "appkey错误" }); 26 return; 27 } 28 if (method == "get" || method == "delete") 29 { 30 IQueryCollection reqUrls = context.HttpContext.Request.Query; 31 StringBuilder sb = new StringBuilder(); 32 var querys = reqUrls.OrderBy(k => k.Key).Select(e => e.Key + "=" + e.Value); 33 string query = string.Join("&", querys); 34 thSign = CaclSHA(path + appSecret + query); 35 } 36 else 37 { 38 IQueryCollection reqUrls = context.HttpContext.Request.Query; 39 StringBuilder sb = new StringBuilder(); 40 var querys = reqUrls.OrderBy(k => k.Key).Select(e => e.Key + "=" + e.Value); 41 string query = string.Join("&", querys); 42 //读取报文体 43 var requestBodyStream = new MemoryStream(); 44 context.HttpContext.Request.Body.CopyTo(requestBodyStream); 45 requestBodyStream.Seek(0, SeekOrigin.Begin); 46 string body = new StreamReader(requestBodyStream, Encoding.UTF8).ReadToEnd(); 47 requestBodyStream.Seek(0, SeekOrigin.Begin); 48 context.HttpContext.Request.Body = requestBodyStream; 49 thSign = CaclSHA(path+appSecret+body); 50 } 51 if (!sign.Equals(thSign,StringComparison.InvariantCultureIgnoreCase)) 52 { 53 context.Result = new JsonResult(new APIResult<int> { Code = 1, Message = "sign错误" }); 54 return; 55 } 56 }View Code
2、编写SDK包:
3、剩下就是部署了,我暂且拿虚拟机来测试
在ubuntu 16.04装上nginx
然后修改nginx的配置:
然后启动。访问就行了:
内容总结
以上是互联网集市为您收集整理的.net core webapi使用nginx实现集群和负载均衡全部内容,希望文章能够帮你解决.net core webapi使用nginx实现集群和负载均衡所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。