Nginx下运行Lua程序

6 篇文章 0 订阅
4 篇文章 0 订阅

1、首先进入到nginx.conf所在的目录下:

笔者的nginx.conf目录为/usr/local/src/nginx-1.3.16/conf

执行一下命令:

cd /usr/local/src/nginx-1.3.16/conf
##用vi打开nginx.conf文件:
vi nginx.conf
打开后可以看到如下配置:

我们可以先测试一下Nginx是否可以打开主页:

执行elinks http://localhost
如果elinks命令无法执行,也就是出现如下的错误:

-bash:  elinks:  command not found

这是因为CentOS默认是不安装elinks的,elinks是访问网页的工具,可以通过下面命令进行安装:

yum -y install elinks
完成之后再运行上面的操作

如果看到下面的界面,就说明是可以访问的:


然后就可以添加自己的模块程序到nginx了。

2、先看一看如何在nginx中如何实现一个hello nginx程序:

在nginx.conf文件的server模块中,我们可以添加这么一段程序:

location /hello {
     echo "hello , nginx";
}
就像这样:


然后保存退出。

需要执行下面命令进行nginx服务重启:

/usr/local/nginx/sbin/nginx -s reload
之后用curl进行测试:

curl http://localhost/hello
晕。。。。。。。。

郁闷的是出现了404访问错误:


下面开始解决这个问题:


经过推测,echo是Nginx的第三方模块,所以首先需要将该模块加载到nginx中去编译安装才可用。

同样的,后面还需要进行Lua程序的测试,所以Lua模块自然也得加载进去一块编译、安装。

 

配置信息如下:

值得注意的是,配置的过程中,我们之前设置了环境变量:

--LUAJIT:--

export LUAJIT_LIB=/usr/local/luajit/lib  

export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0  

-- drizzle --

export LIBDRIZZLE_INC=/opt/drizzle/include/libdrizzle-1.0

export LIBDRIZZLE_LIB=/opt/drizzle/lib


 

所以这两个也需要在配置的过程中加进去,不然的话依赖这些模块的库文件是无法使用的。

配置信息:

    ./configure --prefix=/usr/local/nginx \  
                --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" \  
                --add-module=/usr/local/ngx_devel_kit \  
                --add-module=/usr/local/echo-nginx-module \  
                --add-module=/usr/local/lua-nginx-module  
    make -j2  
    make install  
就像这样:

PS:值得一提的是,在加载这些模块的时候,首先我们应该进入到这些模块的目录中,查看一下它们里面的config文件是不是可执行的,还有xxx_xx_core文件,这都是编译时需要执行的配置文件。可以用ls -al 命令查看是不是可执行。如果不是的话,用chmod +x config来修改权限。确保这些没问题之后才可以执行执行上面的配置。

然后执行make -j2命令进行编译,编译成功之后就可以make install 进行安装了。

这次我们测试lua程序是不是好使,在server中加一个location /luaa块:

location /luaa{
    default_type 'text/plain';
    content_by_lua 'ngx.say("hello to lua in nginx!")';
}

然后进行通过curl进行访问:

curl http://localhost/luaa
如果正确输出下面的语句,就表示成功了!

hello to lua in nginx!

就像这样:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值