學習ngx_openresty之openresty安裝 一
OpenResty (也稱為 ngx_openresty)是一個全功能的 Web 應用程式伺服器。它打包了標準的 Nginx 核心,很多的常用的第三方模組,以及它們的大多數依賴項。
通過眾多進行良好設計的 Nginx 模組,OpenResty 有效地把 Nginx 伺服器轉變為一個強大的 Web 應用程式伺服器,基於它開發人員可以使用 Lua 程式設計語言對 Nginx 核心以及現有的各種 Nginx C 模組進行指令碼編程,構建出可以處理一萬以上並發請求的極端高效能的 Web 應用程式。
OpenResty 致力於將你的伺服器端應用完全運行於 Nginx 伺服器中,充分利用 Nginx 的事件模型來進行非阻塞 I/O 通訊。不僅僅是和 HTTP 用戶端間的網路通訊是非阻塞的,與MySQL、PostgreSQL、Memcached、以及 Redis 等眾多遠方後端之間的網路通訊也是非阻塞的。
因為 OpenResty 軟體包的維護者也是其中打包的許多 Nginx 模組的作者,所以 OpenResty 可以確保所包含的所有組件可以可靠地協同工作。
給幾個連結地址瞭解下它的功能強大之處:
https://openresty.org
https://github.com/SinaMSRE/ABTestingGateway
https://www.gitbook.com/book/moonbingbing/openresty-best-practices/details
其實編譯安裝很簡單,只要把OpenResty需要的依賴包安裝好就可以。
linux系統centos伺服器版本:安裝依賴:
yum install readline-devel pcre-devel openssl-devel gcc
解壓下載的壓縮檔。
./configure
make
make install
mac系統下,我碰到的就是OpenSSL不太好裝
不過還好,有人開發了homebrew包管理工具。http://brew.sh
請自行下載安裝。
安裝步驟:
brew update
brew install openssl
brew link --force openssl
看下版本:
openssl version -a
參考:http://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x
mac系統下預設安裝路徑:/usr/local/openresty
為了方便配置和起停nginx,寫了幾個方便的指令碼:
為了方便管理nginx的設定檔,把nginx的配置放到 ~/etc/nginx 目錄:
在該目錄下放的輔助啟動停止指令碼內容:
啟動nginx指令碼:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
停止指令碼:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s quit -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
重新載入配置:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s reload -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
~/etc/nginx/nginx.conf 設定檔做了一些改動:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include lua.conf;
}
把配置挪到了lua指令檔中:
內容:
server {
listen 8080;
server_name localhost;
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello doctor " )';
}
location /p {
rewrite_by_lua_file luascript/rout.lua;
}
}
測試下,運行指令碼前請自動改動之行許可權:
訪問結果:
是不是可以運行了。