注:部署应用层nginx,会采用OpenResty的方式去部署nginx,而且会带着大家写一个nginx+lua开发的一个hello world
1、部署第一个nginx,作为应用层nginx(192.168.25.102那个机器上)
(1)部署openresty
1.mkdir -p /usr/servers
2.cd /usr/servers/
3.yum install -y readline-devel pcre-devel openssl-devel gcc
4.wget http://openresty.org/download/ngx_openresty-1.7.7.2.tar.gz
5.tar -xzvf ngx_openresty-1.7.7.2.tar.gz
6.cd /usr/servers/ngx_openresty-1.7.7.2/
7.cd bundle/LuaJIT-2.1-20150120/
8.make clean && make && make install
9.ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit
10.cd bundle
11.wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
12.tar -xvf 2.3.tar.gz
13.cd bundle
14.wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz
15.tar -xvf v0.3.0.tar.gz
16.cd /usr/servers/ngx_openresty-1.7.7.2
17./configure --prefix=/usr/servers --with-http_realip_module --with-pcre --with-luajit --add-module=./bundle/ngx_cache_purge-2.3/ --add-module=./bundle/nginx_upstream_check_module-0.3.0/ -j2
18.make && make install
检查是否安装成功
cd /usr/servers/
使用 ll 命令会多初一下几个文件
/usr/servers/luajit
/usr/servers/lualib
/usr/servers/nginx
//查看版本
/usr/servers/nginx/sbin/nginx -V
启动 nginx: /usr/servers/nginx/sbin/nginx
(2)nginx+lua开发的hello world
编辑nginx.conf配置文件
vi /usr/servers/nginx/conf/nginx.conf
在http部分添加:
lua_package_path "/usr/servers/lualib/?.lua;;";
lua_package_cpath "/usr/servers/lualib/?.so;;";
/usr/servers/nginx/conf下,创建一个lua.conf
server {
listen 80;
server_name _;
}
在nginx.conf的http部分添加:
include lua.conf;
验证配置是否正确:
/usr/servers/nginx/sbin/nginx -t
在lua.conf的server部分添加:
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}
验证配置是否正确:
/usr/servers/nginx/sbin/nginx -t
重新nginx加载配置
/usr/servers/nginx/sbin/nginx -s reload
访问http: http://192.168.25.102/lua
//正常情况下lua代码不会写到配置文件当中,会另外写个lua代码文件人后引用
mkdir /usr/servers/nginx/conf/lua
vim /usr/servers/nginx/conf/lua/test.lua
ngx.say("hello world hadoop102");
修改lua.conf
location /lua {
default_type 'text/html';
content_by_lua_file conf/lua/test.lua;
}
查看异常日志
tail -f /usr/servers/nginx/logs/error.log
(3)工程化的nginx+lua项目结构
步骤2只是入门的hello没有项目结构不方便管理,这一步把hello规则化方便管理
hello
hello.conf
lua
hello.lua
lualib
*.lua
*.so
1.创建hello文件
mkdir -p /usr/hello
2.创建hello.conf文件并编辑
vim /usr/hello/hello.conf
server {
listen 80;
server_name _;
location /hello {
default_type 'text/html';
content_by_lua_file /usr/hello/lua/hello.lua;
}
}
3.创建lua文件夹
mkdir -p /usr/hello/lua
4.创建hello.lua文件并编辑
vim hello.lua
ngx.say("hello world");
5.创建lualib文件夹
mkdir -p /usr/hello/lualib
6.将需要的文件以及库拷贝到lualib文件夹中
cp -r /usr/servers/lualib/* /usr/hello/lualib
7.编辑nginx
vim /usr/servers/nginx/conf/nginx.conf
lua_package_path "/usr/hello/lualib/?.lua;;";
lua_package_cpath "/usr/hello/lualib/?.so;;";
include /usr/hello/hello.conf;
8.检查是否成功
/usr/servers/nginx/sbin/nginx -t
9。重新nginx加载配置
/usr/servers/nginx/sbin/nginx -s reload
10.访问http://192.168.25.102/hello