部署了两台虚拟机
模拟的场景是什么,假设这两台虚拟机分别在不同的机房中,每个机房里都有一台机器,所以按照我们之前讲解的那套双机房的四级缓存架构
期望
- 部署nginx,虚拟机,每台机器上,部署两个nginx,一个是分发层nginx,一个是应用层nginx
部署nginx
前置准备
mkdir -p /usr/servers
cd /usr/servers/ yum install -y readline-devel pcre-devel openssl-devel gcc
下载解压
wget https://openresty.org/download/openresty-1.15.8.2.tar.gz tar -xzvf openresty-1.15.8.2.tar.gz cd openresty-1.15.8.2
bundle 模块安装
~~cd LuaJIT-2.1-20190507/ ~~ ~~make clean && make && make install ~~
这一步有用么
ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit
如果不使用默认的安装地址, 可以配置到别的地方修改 makefile 里面的安装路径 ~~`export PREFIX= /usr/local/luajit~~`只是在下面 openretry 安装的时候,需要指定下 luajit 的目录export~~ LUAJIT_LIB~~=/usr/local/luajit/lib ~~ ~~export~~ LUAJIT_INC~~=/usr/local/luajit/include/luajit-2.0~~ ~~
下载ngx_cache_purge模块,该模块用于清理nginx缓存
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
tar -xvf 2.3.tar.gz
下载nginx_upstream_check_module模块,该模块用于ustream健康检查
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz
tar -xvf v0.3.0.tar.gz
根据将上面的模块进行安装
cd /usr/servers//openresty-1.15.8.2
./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
make && make install
在
/usr/servers/openresty-1.15.8.2
同级目录下会生成/usr/servers/luajit
/usr/servers/lualib
/usr/servers/nginx
查看是否安装成功
/usr/servers/nginx/sbin/nginx -V
查看异常日志
tail -f /usr/servers/nginx/logs/error.log
工程化的nginx+lua项目结构
- 自定义存放目录,下面存放在
/usr/hello
目录下 - 项目工程结构
hello
hello.conf
lua
hello.lua
lualib # 直接拷贝 /usr/servers/lualib下的内容
*.lua
*.so
使用 hello 项目
- /usr/servers/nginx/conf
worker_processes 2;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;
# 使用第三方
lua_package_path "/usr/hello/lualib/?.lua;;";
lua_package_cpath "/usr/hello/lualib/?.so;;";
# 使用其他配置文件
include /usr/hello/hello.conf;
}
配置 hello项目
/usr/hello/lua/hello.lua;
ngx.say("hello")
/usr/hello/hello.conf
server {
listen 80;
server_name _;
location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file /usr/hello/lua/hello.lua;
}
}
检查和运行
启动
/usr/servers/nginx/sbin/nginx
检查配置是否正确
/usr/servers/nginx/sbin/nginx -t
重新加载
/usr/servers/nginx/sbin/nginx -s reload
停止
/usr/servers/nginx/sbin/nginx -s stop