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!
就像这样: