OpenResty 使用介紹
錘子科技在 T2 發(fā)布會上將門票收入捐贈給了 OpenResty 開源項目厂汗,今天我們就來為大家介紹下 OpenResty 是個什么鬼侥啤?
OpenResty 介紹
OpenResty(又稱:ngx_openresty) 是一個基于 NGINX 的可伸縮的 Web 平臺,由中國人章亦春發(fā)起藤滥,提供了很多高質(zhì)量的第三方模塊暖混。
OpenResty 是一個強大的 Web 應用服務器,Web 開發(fā)人員可以使用 Lua 腳本語言調(diào)動 Nginx 支持的各種 C 以及 Lua 模塊,更主要的是在性能方面莲镣,OpenResty可以 快速構造出足以勝任 10K 以上并發(fā)連接響應的超高性能 Web 應用系統(tǒng)。
360涎拉,UPYUN瑞侮,阿里云,新浪鼓拧,騰訊網(wǎng)半火,去哪兒網(wǎng),酷狗音樂等都是 OpenResty 的深度用戶季俩。
OpenResty 安裝
OpenResty 依賴庫有: perl 5.6.1+, libreadline, libpcre, libssl钮糖。
所以我們需要先安裝好這些依賴庫,也非常簡單:
apt-get install libreadline-dev libpcre3-dev libssl-dev perl
如果你的系統(tǒng)是 Centos 或 RedHat 可以使用以下命令:
yum install readline-devel pcre-devel openssl-devel
接下我們可以在官方(https://openresty.org/cn/)下載最新的 OpenResty 源碼包并解壓編譯安裝:
wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz # 下載
tar xzvf ngx_openresty-1.9.7.1.tar.gz? ? ? # 解壓
cd ngx_openresty-1.9.7.1/
./configure
make
make install
默認情況下程序會被安裝到 /usr/local/openresty 目錄,你可以使用 ./configure --help 查看更多的配置選項店归。
Hello World 實例
安裝成功后阎抒,我們就可以使用 openresty 直接輸出 html 頁面。
首先我們可以創(chuàng)建一個工作目錄:
mkdir /home/www
cd /home/www/
mkdir logs/ conf/
其中 logs 目錄用于存放日志消痛,conf 用于存放配置文件且叁。
接著,我們在 conf 目錄下創(chuàng)建一個 nginx.conf 文件 代碼如下:
worker_processes 1;
error_log logs/error.log;
events {
? ? worker_connections 1024;
}
http {
? ? server {
? ? ? ? listen 9000;
? ? ? ? location / {
? ? ? ? ? ? default_type text/html;
? ? ? ? ? ? content_by_lua '
? ? ? ? ? ? ? ? ngx.say("<p>Hello, World!</p>")
? ? ? ? ? ? ';
? ? ? ? }
? ? }
}
如果你熟悉 nginx 的配置秩伞,應該對以上代碼就很熟悉逞带。這里我們將 html 代碼直接寫在了配置文件中纱新。
啟動 openresty
默認情況下 openresty 安裝在 /usr/local/openresty 目錄中展氓,啟動命令為:
cd /home/www
/usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c conf/nginx.conf
如果沒有任何輸出,說明啟動成功脸爱,-p 指定我們的項目目錄带饱,-c 指定配置文件。
接下來我們可以使用 curl 來測試是否能夠正常范圍:
curl http://localhost:9000/
輸出結果為:
Hello, World!
或者通過瀏覽器訪問 http://localhost:9000/:
看到了吧阅羹,我們在配置文件寫的 html 已正常輸出勺疼。
OpenResty 的目標是讓你的 Web 服務直接跑在 Nginx 服務內(nèi)部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對 HTTP 客戶端請求,甚至于對遠程后端諸如 MySQL,PostgreSQL,~Memcaches 以及 ~Redis 等都進行一致的高性能響應。
所以對于一些高性能的服務來說捏鱼,可以直接使用 OpenResty 訪問 Mysql或Redis等执庐,而不需要通過第三方語言(PHP、Python导梆、Ruby)等來訪問數(shù)據(jù)庫再返回轨淌,這大大提高了應用的性能。
相關站點
OpenResty 英文官網(wǎng):http://openresty.org/
OpenResty 中文官網(wǎng):http://openresty.org/cn/
Nginx 維基官網(wǎng):http://wiki.nginx.org/
Lua 入門教程:Lua 入門教程