安裝OpenResty
1.安裝
首先你的Linux虛擬機(jī)必須聯(lián)網(wǎng)
1)安裝開發(fā)庫
首先要安裝OpenResty的依賴開發(fā)庫,執(zhí)行命令:
yum install -y pcre-devel openssl-devel gcc --skip-broken
2)安裝OpenResty倉庫
你可以在你的 CentOS 系統(tǒng)中添加 openresty
倉庫,這樣就可以便于未來安裝或更新我們的軟件包(通過 yum check-update
命令)。運(yùn)行下面的命令就可以添加我們的倉庫:
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
如果提示說命令不存在,則運(yùn)行:
yum install -y yum-utils
然后再重復(fù)上面的命令
3)安裝OpenResty
然后就可以像下面這樣安裝軟件包,比如 openresty
:
yum install -y openresty
4)安裝opm工具
opm是OpenResty的一個(gè)管理工具,可以幫助我們安裝一個(gè)第三方的Lua模塊。
如果你想安裝命令行工具 opm
,那么可以像下面這樣安裝 openresty-opm
包:
yum install -y openresty-opm
5)目錄結(jié)構(gòu)
默認(rèn)情況下,OpenResty安裝的目錄是:/usr/local/openresty
看到里面的nginx目錄了嗎,OpenResty就是在Nginx基礎(chǔ)上集成了一些Lua模塊。
繼續(xù)查看bin目錄:
"linux鏈接文件 “l(fā)”是鏈接文件,l是link的意思。 相當(dāng)于windows的快捷方式;”
6)配置nginx的環(huán)境變量
打開配置文件:
vim /etc/profile
在最下面加入兩行:
export NGINX_HOME=/usr/local/openresty/nginx
export PATH=${NGINX_HOME}/sbin:$PATH
NGINX_HOME:后面是OpenResty安裝目錄下的nginx的目錄
然后讓配置生效:
source /etc/profile
2.啟動(dòng)和運(yùn)行
OpenResty底層是基于Nginx的,查看OpenResty目錄的nginx目錄,結(jié)構(gòu)與windows中安裝的nginx基本一致:
所以運(yùn)行方式與nginx基本一致:
# 啟動(dòng)nginx
nginx
# 重新加載配置
nginx -s reload
# 停止
nginx -s stop
nginx的默認(rèn)配置文件注釋太多,影響后續(xù)我們的編輯,這里將nginx.conf中的注釋部分刪除,保留有效部分。
修改/usr/local/openresty/nginx/conf/nginx.conf
文件,內(nèi)容如下:
其實(shí)就是把初始nginx.conf的配置文件里所有的注釋給刪除了,看起來清爽多了
#user nobody;
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8081;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
在Linux的控制臺(tái)輸入命令以啟動(dòng)nginx:
nginx
然后訪問頁面:http://192.168.141.100:8081,注意ip地址替換為你自己的虛擬機(jī)IP:
nginx.conf配置文件里面改成了監(jiān)聽8081端口,所以這里訪問8081端口
3.備注
加載OpenResty的lua模塊:
#lua 模塊
lua_package_path "/usr/local/openresty/lualib/?.lua;;";
#c模塊
lua_package_cpath "/usr/local/openresty/lualib/?.so;;";
common.lua
-- 封裝函數(shù),發(fā)送http請(qǐng)求,并解析響應(yīng)
local function read_http(path, params)
local resp = ngx.location.capture(path,{
method = ngx.HTTP_GET,
args = params,
})
if not resp then
-- 記錄錯(cuò)誤信息,返回404
ngx.log(ngx.ERR, "http not found, path: ", path , ", args: ", args)
ngx.exit(404)
end
return resp.body
end
-- 將方法導(dǎo)出
local _M = {
read_http = read_http
}
return _M
釋放Redis連接API:
-- 關(guān)閉redis連接的工具方法,其實(shí)是放入連接池
local function close_redis(red)
local pool_max_idle_time = 10000 -- 連接的空閑時(shí)間,單位是毫秒
local pool_size = 100 --連接池大小
local ok, err = red:set_keepalive(pool_max_idle_time, pool_size)
if not ok then
ngx.log(ngx.ERR, "放入redis連接池失敗: ", err)
end
end
讀取Redis數(shù)據(jù)的API:文章來源:http://www.zghlxwxcb.cn/news/detail-727123.html
-- 查詢r(jià)edis的方法 ip和port是redis地址,key是查詢的key
local function read_redis(ip, port, key)
-- 獲取一個(gè)連接
local ok, err = red:connect(ip, port)
if not ok then
ngx.log(ngx.ERR, "連接redis失敗 : ", err)
return nil
end
-- 查詢r(jià)edis
local resp, err = red:get(key)
-- 查詢失敗處理
if not resp then
ngx.log(ngx.ERR, "查詢Redis失敗: ", err, ", key = " , key)
end
--得到的數(shù)據(jù)為空處理
if resp == ngx.null then
resp = nil
ngx.log(ngx.ERR, "查詢Redis數(shù)據(jù)為空, key = ", key)
end
close_redis(red)
return resp
end
開啟共享詞典:文章來源地址http://www.zghlxwxcb.cn/news/detail-727123.html
# 共享字典,也就是本地緩存,名稱叫做:item_cache,大小150m
lua_shared_dict item_cache 150m;
到了這里,關(guān)于OpenResty安裝-(基于Nginx的高性能Web平臺(tái),可在Nginx端編碼業(yè)務(wù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!