IDEA中配置OpenResty开发环境

概念

以下概念解释均来自百度或者其官网,各位看官也就不用再去自己查询了,了解一下就行了。
- OpenResty

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

  • Lua

    Lua [1] 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

  • Nginx

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

  • nginx-lua

    将Lua的强大功能嵌入到Nginx HTTP服务器中。该模块通过标准Lua 5.1解释器或LuaJIT 2.0 / 2.1将Lua嵌入到Nginx中,并通过利用Nginx的子请求,允许将强大的Lua线程(Lua协程)集成到Nginx事件模型中。

  • IDEA

    IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。

操作步骤

  • 下载OpenResty包

登陆OpenResty官网的下载页面

我本地系统是Window10 64位专业版,所以我下载了红色框内的版本。

下载后解压到D://WorkTools目录下

到此本地环境中的Nginx和Lua都已经准备好了,接下来,就需要给IDEA安装相关插件了。

  • 安装IDEA插件
    安装Lua和Nginx支持

这三个插件,我好像只用到了前两个,安装的时候需要到Repositories中搜索,国内环境可能安装起来有些困难,可以找个代理哈。插件安装完后重启一下IDEA就行,到此该下载的工具什么的都已经下载完毕,该进行一些配置了。
- 配置环境
- 配置nginx服务器



  • 配置环境变量
    在系统环境变量的path中添加OpentResty的根目录:D:\WorkTools\openresty-1.13.6.2-win64\openresty-1.13.6.2-win64, 具体添加方法就不赘述,毕竟都是玩过Java的人。
    • IDEA的Ant支持
      由于当前这个环境配置方案需要使用ant进行系统构建工作,所以还需要idea支持ant项目构建,idea默认带有这个插件,只需要在插件中开启支持就行了。

测试案例

  • 项目创建

创建一个空的Lua工程



在根目录下添加两个目录:confsrc

  • 测试脚本
    在conf目录下新建nginx.conf文件,并进行如下配置:
worker_processes  2;
error_log  logs/error.log  info;
events {
    worker_connections  1024;
}
http {
    default_type  application/octet-stream;
    access_log  logs/access.log;
    lua_package_path 'pic-server/?.lua;;';
    server {
        listen       7777;
        server_name  localhost;
        default_type text/html;
        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

        location /test {
          content_by_lua_file pic-server/test.lua;
        }
    }
}

在src目录下新建test.lua文件,并编写如下代码:

local function main()
    ngx.say("hello world, i am a test")
end
main()

至此一个简单的OpenResty项目就完成了,如果手动拷贝到OpenResty包下的规定目录中,并启动Nginx就可以访问了。但是呢,既然是要使用集成开发环境,那么,我们就需要进行自动化的项目构建,并且可以开发IDE中直接启动项目。这里,我参考了CSDN上的一篇博客【Java团队用OpenResty】2、Eclipse开发环境搭建,就是使用ant来做代码拷贝等工作。
- ant构建脚本
ant脚本编写如下:

<project name="pic-server" default="dist" basedir=".">
    <description>
        run pic-server
    description>
    
    <property name="openresty-home" location="D:\WorkTools\openresty-1.13.6.2-win64\openresty-1.13.6.2-win64"/>
    <property name="conf" location="${basedir}/conf"/>
    <property name="src" location="${basedir}/src"/>
    <property name="target-conf" location="${openresty-home}/conf"/>
    <property name="target-src" location="${openresty-home}/${ant.project.name}"/>

    <echo>######开发版本的ant配置#####echo>
    <target name="clean" depends="">
        <echo>清理openresty目录 ${dist}下的conf,logs,janus,januslibecho>
        <delete dir="${target-conf}"/>
        <delete dir="${target-src}"/>
        <delete>
            <fileset dir="${openresty-home}/logs" includes="*.log">
            fileset>
        delete>
    target>

    <target name="init" depends="clean">
        <echo>创建安装目录echo>
        <mkdir dir="${target-conf}"/>
        <mkdir dir="${target-src}"/>
    target>

    <target name="dist" depends="init" description="generate the distribution" >
        <echo>复制安装文件echo>
        <copy todir="${target-conf}">
            <fileset dir="${conf}">fileset>
        copy>
        <copy todir="${target-src}">
            <fileset dir="${src}">fileset>
        copy>
    target>

project>

这里我只保留了cleaninitdist三个操作,我将nginx的启停交给了IDEA的Nginx support插件来控制,这主要是符合我自己的操作习惯。
- 添加nginx运行服务

具体操作如图所示:

经过以上操作,一个简单OpenResty环境和测试案例算是开发完成了,现在就可以像Java Web程序一样运行了,只需要点击运行按钮即可运行。
- 运行并测试

点击运行按钮后,如下图所示就说明已经运行好了。

下载可以在浏览器地址栏输入:http://localhost:7777/test即可查看这个测试案例。应该展示内容为:

到了这里,基本上配置就基本上已经结束了。但是呢,上面的配置其实还有一点问题:运行的过程中Console中并不会即使的显示日志信息,目前我是通过记事本打开日志文件,然后通过手动刷新文件查看日志。这个应该在什么地方也可以配置,只是我还没有搞清楚。哈哈,不过就这样已经够我完了。后面我将陆陆续续的一些实际案例开发的文章,有喜欢的朋友可以留言一起讨论。

再次感谢博文:【Java团队用OpenResty】2、Eclipse开发环境搭建 给了我指导方向。

原文地址:http://greeks.studio/articles/2018/05/30/1527680572374.html

你可能感兴趣的:(Nginx)