【java团队用OpenResty】1、在windows构建开发环境
来源:互联网 发布:货代软件系统 编辑:程序博客网 时间:2024/06/05 09:11
作为多年的Java架构师,前一阵子奉命基于OpenResty搭建API网关,手上的资源都是Java开发人员,面对这种情况如何应对,下面推出一个系列文章,介绍我们的经验,供有类似需求的团队借鉴。
OpenResty是基于基于Nginx的Lua开发平台,利用Linux的epoll模式进行高效的接入访问。对于我们这种整天在window下开发的人,如果使用vim开发工具,天天登录到linxu上进行开发,就是噩梦一般。所以先介绍我们在windows下面构建OpenResty开发环境作为开篇。
我们希望达到的效果是能够运行纯lua程序,然后能够运行引用openresty库的lua
一、开发工具准备
1、OpenResty已经发布了window的二进制编译版本,以此搭建为本地开发。
2、Notepad++并插件安装NppFTP,JSON Viewer,Light Explorer
3、ngx_openresty-1.9.7.1-win32(其中的luajit作为作为临编译器使用,本身也可以做临时环境)
二、运行Lua的操作步骤
首先将ngx_openresty-1.9.7.1-win32安装到某个目录,注意安装到非中文,路径不带空格的目录下。
C:\ngx_openresty-1.9.7.1-win32
先创建一个空白文件,输入print("hello"),这里用到了Light Explorer插件进行文件管理。
然后在Notepad++菜单中选择>运行
输入cmd /k C:\ngx_openresty-1.9.7.1-win32\luajit.exe "$(FULL_CURRENT_PATH)"
这里解释一下$(FULL_CURRENT_PATH)在Notepad++里代表当前文件的完成路径,包括文件名。
先选择运行,就会在终端上输出“hello”
然后选择保存,定义一个快捷键。
这样,后续执行就可以不用命令行了
最后,如果有多个库引用,或者自己写的module,放在C:\ngx_openresty-1.9.7.1-win32\lua即可!
这样,我们就能够编辑纯Lua的代码,并随时运行,同时Notepad++提供了Lua的语法高亮,写Lua没有问题了。
三、运行OpenResty的Lua
折腾了半天,只是能运行纯Lua,没啥意思,我们要能够运行ngx.say的环境。答案在resty.bat上,resty.bat相当于是一个执行resty的perl脚本的批处理文件。章亦春据说Perl造诣中国排名前五,在OpenResty中也有大量的Perl使用,resty.bat就是一个在perl脚本,主要是动态创建一个ngnix 项目目录,并根据模板创建相应的nginx.conf。
因为notepad++下面$(FULL_CURRENT_PATH)变量返回的是windows的反斜杠,导致perl执行有问题,因此模仿resty.bat写一个新的批处理文件。
首先,创建resty-janus.bat
@rem = '--*-Perl-*--@echo offset var=%1set var=%var:\=/%perl -x -S resty_janus.perl %var%if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperlif %errorlevel% == 9009 echo You do not have Perl in your PATH.if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul我们演示一下创建一个共享内存字典的Lua脚本,
首先需要对perl脚本中的nginx.conf模板进行编辑。copy resty 到resty_janus.perl,从Line 176行开始就是nginx.conf 模板内容,添加了:
lua_shared_dict sys_info 1m;
然后就可以执行下面的脚本
local sys_shm = ngx.shared.sys_infolocal ok, err = sys_shm:safe_set("apis_status", "Starting")if not ok then ngx_log(ngx.ERR, "SYS_SHM set status 'Starting' error. ", err) returnendprint ('status: ' .. sys_shm:get("apis_status"))最后,在notepad++中,运行cmd /k C:\ngx_openresty-1.9.7.1-win32\resty_janus.bat "$(FULL_CURRENT_PATH)"就能够正常执行了。
- 【java团队用OpenResty】1、在windows构建开发环境
- 【Java团队用OpenResty】2、Eclipse开发环境搭建
- 【Java团队用OpenResty】3、OpenResty快速学习方法
- Windows开发环境构建之Java篇
- 1安装OpenResty(Nginx+Lua)开发环境
- 【Java团队用OpenResty】4、Redis的高可用性
- 在Windows下构建Qt4开发环境(Qt4+Vim)
- 在windows 上构建android NDK 开发环境
- 在Windows上构建Android应用开发环境
- 在Windows中构建基于Docker的一致性开发环境
- 构建Windows驱动开发环境
- 构建Windows驱动开发环境
- 在Ubuntu10.04下构建Java开发环境
- 在Ubuntu10.04下构建Java开发环境
- 极小开发团队构建
- 在Windows环境下用Yeoman构建AngularJS项目
- 用idea在Windows下构建spark2.2.0的环境
- java集成开发环境构建
- tomcat设置账号密码
- text-shadow和box-shadow用法
- C# DataGridView绑定数据源的几种常见方式
- 设计模式——工厂模式总结
- 基于遗传算法的GBDT调参方法
- 【java团队用OpenResty】1、在windows构建开发环境
- Ajax请求中的async:false/true的作用
- 连续点击两次退出当前程序
- windows命令行
- Lintcode 关于分支限界算法的总结
- 比特币原理
- 不完美总结android4.4+透明状态栏
- idea 使用sbt构建工程时错误unresolved dependency: org.scala-sbt#sbt;0.13.8: not found
- YII2框架中统计图插件highcharts中右下角链接如何修改