![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
其它后端语言
文章平均质量分 90
其它后端语言开发,比如 Lua/Go等
林戈的IT生涯
我是林戈!IT技术领域深耕10年+;北京多家名厂闯荡5年+;清华大学硕士;坐标山东从事IT研发工作。之前一直在阿里云运营独立网站,2015年起自建博客并运营约10年,累计发文1300+篇,2024年3月域名被收购目前在逐步迁移博客文章至CSDN。
展开
-
linux搭建nginx+lua+redis完整环境的完整shell脚本、nginx+lua中ngx.say阻塞nginx的proxy_pass转发 及 openresty集成环境搭建
nginx下载的版本是:nginx-1.6.3.tar.gz,lua的版本是LuaJIT-2.0.3.tar.gz,redis的版本是redis-2.8.17.tar.gz,里面都带有下载网址,可直接放在linux下执行此shell文件完成安装,sudo yum install lua-devel时有个提示需要输入y。二、nginx+lua中lua脚本有使用ngx.say输出时会阻塞nginx的proxy_pass转发。以上是我在调试中发现的规则,简单去GOOGLE了一下,没有找到相关的内容介绍。原创 2024-07-11 07:00:00 · 320 阅读 · 1 评论 -
给API接口增加Nginx+lua签名认证、Lua生成xml时特殊字符导致XML解析异常处理 及 Lua中find的妙用
一般我们在请求服务器端的接口时都需要进行签名认识,很多时候都是在PHP程序里将参数按照字母排序,然后连接成一个字符串,再加上一串独立密钥最后md5一下做成一个接口的认证,签名的基本原理也就这些东西,不过在PHP程序中做签名有个问题就是,如果需要自己调试接口的时候,每次参数有变化的时候都需要输入正确的sign签名字符串,才能顺利通过测试,而这会造成极大的不方便。之前在百度的时候,测试都是一个窗口打开着服务器端的错误日志,里面会记录传入的错误sign值和应该正确的sign值。可以想像这是多么麻烦。原创 2024-06-14 07:15:00 · 1298 阅读 · 8 评论 -
在lua中执行shell脚本并取得返回结果及lua使用连接池连接redis出现bad request问题
lua脚本中可以直接执行shell脚本,常用的方法是os.execute,但是这个方法不能返回执行结果。io.popen()方法可以实现,io.popen()执行命令后返回的是一个文件,然后使用lua中文件的读取命令,取得内容。示例如上即可实现执行shell脚本并打印出来。原创 2024-05-11 07:30:00 · 922 阅读 · 0 评论 -
Go开发连接MYSQL、Go取得随机字符串的三种方法代码 以及使用Go实现冒泡排序和快速递归
最近闲余时间接触了一点GO,真不知道它好用在哪,在Go语言中没有类(Class)的概念,然而编程又离不开面向对象,于是GO说我没有类的概念,但我也能实现面向对象编程。在Go中使用结构体(Structs)对属性进行封装,结构体就像是类的一种简化形式。然后再在Go中定义一些方法并且作用在接收者(receiver)上的一个函数,简单描述就是GO中没有类的概念,但你可以定义一个Struct结构,当作类。这个结构中的属性当做类的属性,然后单独定义一些方法挂载到这个结构上,模拟出了一个类。但感觉还是挺别扭的。原创 2024-04-30 07:45:00 · 1200 阅读 · 16 评论 -
Go开发使用bee工具生成beego框架工程代码、运行web项目以及beego中内置模板函数列表
GO开发中使用bee工具生成beego框架工程代码,在这之前假定你已经成功安装好了Beego环境搭建和bee工具,执行上述命令后,查看生成的工程目录文件夹下,可以看到一堆熟悉的文件夹名字,功能一看一目了然。如下图:进入GOPATH的src目录下的新生成的company目录。上述提示即表示已经启动本机的8080端口监听服务。原创 2024-04-26 07:45:00 · 1588 阅读 · 15 评论 -
Nginx的access日志按日按时切割的实现方法、Nginx做服务器时如何隐藏nginx的版本号等信息
nginx的一个不好的地方就是日志切割了,不能在配置文件中直接配置日志的分割。但这样会有一个问题就是时间久了,日志问题会很大,特别是access日志,大公司里的日志服务器在搭建时日志就已经按时分别存放,这个是可以通过修改nginx的源码,在编译的时候就分开存储。不过一般的网站也没有必要去动nginx的源码,可以使用另外简单的途径实现,就是使用linux定时任务,将nginx的日志进行移动存储。原创 2024-04-16 06:17:25 · 1094 阅读 · 3 评论 -
Nginx + Lua 程序脚本开发的一些配置基础及代码示例 以及 使用nginx+lua 做WEB开发的代码实例
在安装了nginx之后,nginx怎么将请求转发给lua脚本。在nginx配置中加上这句代码,就会将请求转发到index.lua上。原创 2024-04-16 11:45:00 · 1404 阅读 · 10 评论 -
Lua使用 lua_shared_dict 共享内存和进程间变量、lua脚本中实现美化打印显示table的函数、以及Nginx服务器非覆盖安装lua扩展的方法
共享内存就是在内存块中分配出一个空间,让几个不相干的进程都能访问存储在这里面的变量数据,实际我们用过的redis,memcache也具有共享内存的意义,redis,memcache等是更高级的可跨服务器的共享内存,在lua中使用共享内存也非常简单。语法:lua_shared_dict 意义:定义一块名为name的共享内存空间,内存大小为size。原创 2024-04-15 13:00:00 · 732 阅读 · 4 评论 -
lua中针对 xml 文件解析的扩展利器 Lua-Simple-XML-Parser、Lua开发时能不能不用每次修改后重启nginx、以及Lua程序中退出当前程序的方法
因为要追求响应速度,应对高并发,所以项目采用nginx+lua架构,谈起我上次lua开发,还要追溯到好像是2013年还是2014年,在redis脚本里整了一点lua,但都忘光了。等都不能终止当前脚本的执行,但在程序调试的时候总需要终止当前脚本,不然后面的全是报错啊。一,使用lua程序:do return end , 光使用return会报错。必须使用一个显式的do块包住这个return 语句。当前用的笨办法就是使用注释把后面的都注释掉。因为项目紧急,基本就拿着原来的项目的代码看看就准备开发新项目。原创 2024-04-15 12:45:00 · 384 阅读 · 1 评论 -
lua中高效判断字符值是否存在、Lua在Windows上生成二维码的解决方案、Lua中字符替换函数string.gsub对特殊字符如$[]等的替换
在PHP中对一个数组进行判断时有很方便的函数调用,比如 in_array;但在LUA中这些轮子都需要自己造了。网上有提供一些常理的方法,比如:http://www.jb51.net/article/65457.htm将table循环遍历一遍,然后对每个值进行判断是否与所找的值对应。代码如下:但这种方式每次都要进行循环遍历,我们知道它的复杂度是O(n),如果有很多字符串都要查询,这时它的低效率就更体现地明显了。原创 2024-04-06 06:30:05 · 296 阅读 · 3 评论 -
Nginx+Lua两种设置全局lua脚本的方法 以及 Lua设置多个lua_package_path的问题
在nginx+lua的程序架构中,如果我们要调用很多成型的工具类lua文件,或者自己写好的可公用的lua module,可以把它放在磁盘上一个共用的目录(不和代码放在一起),并且这个目录也不是lua的安装目录(lua在程序执行时会自动尝试去加载安装目录里的lua文件,比如/usr/lib/lua/5.1/),可以有两种方式实现自动搜索。原创 2024-03-30 16:26:13 · 695 阅读 · 0 评论 -
在Centos上部署Go项目过程、BeeGo框架模板应用、以及Go支撑高并发的goroutine介绍
找到Linux对应的Go安装包版本,当前是go1.14.linux-amd64.tar.gz (118MB)版本。在服务器的对应目录中下载,我这里因为很多应用都放在/usr/local/中,我也就放在这里吧。原创 2024-03-30 16:13:54 · 177 阅读 · 0 评论 -
使用C#调用http API 接口获取数据展示 以及 .NET、Csharp和ASP.NET的关系和区别
我这里使用 Visual Studio.Net 编译和执行 C# 程序,版本是Visual Studio2017,步骤如下:启动Visual Studio2017。在菜单栏上,选择 File文件 -> New新建 -> Project项目,从模板中选择 Visual C#,然后选择 Windows桌面。在右边选择 Console Application即控制台应用。在下方为项目定一个名称,并可以选择程序存放位置。其它默认,然后点击 OK 按钮。PS:什么是控制台程序?原创 2024-03-29 18:36:21 · 439 阅读 · 0 评论 -
Linux下GO的环境搭建、go代码程序编译示例 以及 Windows下Beego环境搭建、bee工具的使用
通过使用go version命令可以看到go已经安装成功。go安装完成之后,接下来开启第一个工作,规范化工作目录,Go代码组织需要指定一个工作空间WorkSpace,添加到GOPATH中,如下创建的/opt/kermitgo目录,在此工作空间内,创建三个子目录bin目录:包含可执行命令,此目录也需要export PATH中去,pkg目录:包含包对象src目录:包含go的源文件,它们被组织成包(每个目录都对应一个包)原创 2024-03-25 06:56:52 · 748 阅读 · 0 评论 -
Go语言中的字符rune类型和索引访问、range循环迭代及常用字符串函数列表了解
Go语言的字符串是使用UTF-8编码的,UTF-8是Unicode的实现方式之一,因此可以直接在代码中使用中文,而不像python那样别扭。给我们国人开发带来很好的便利。Go语言中的原生字符串需要使用双引号("")或反引号(``)定义。单引号不能用来表示字符串,否则会报错:在GO语言中双引号:"", 用于单行字符串。如果需要用于多行字符串,需要使用反引号:``,此时反引号中的内部会原样解析。原创 2024-03-21 06:51:27 · 271 阅读 · 0 评论 -
Lua包的管理工具luarocks的安装使用,lua: module ‘ffi‘ not found:报错的最终完美解决
Lua里面的so文件在一些服务器(各环境相同)之间是可以通用的,但在有些服务器之间就是不行,这几天在迁移一个业务时就碰到这样的事情,使用nginx+lua搭建的一套接口系统,里面使用了cmsgpack扩展,但是在新的环境下unpack这个方法就是不起作用,就像黑洞一样,调用之后也没有反应,也没有报错,就是没有结果。针对cmsgpack.so解压缩内容的异常问题,尝试了很多次也调试了很久,就是这个地方调不出问题,蛋痛地很。原创 2024-03-20 06:23:52 · 790 阅读 · 1 评论