學習OpenResty的正確姿式

前段時間老羅退出獲得專欄事情鬧得沸沸揚揚,另外一位老羅也給出了合理的會員退費,感受獲得仍是蠻貼心的。想一想也是,畢竟精力有限,現在老羅也有了十億的投資,集中精力作好手機纔是主業。記得老羅剛開專欄那段時間很想訂閱一把,但仍是忍住了,年初就訂閱了吳軍博士的專欄,想一想199大洋仍是算了吧,畢竟不是真愛粉。html

引言

其實今天的主角並非老羅,如標題所述,今天來聊聊 OpenResty,2015年老羅在錘子科技T2發佈會上將門票收入捐贈給了 OpenResty,也相信老羅是個有情懷的胖子。nginx

有不少同窗就問了,OpenResty 究竟是個什麼東西?比較逗的回答是,"就是 nginx 打個包。" 若是你們看過億級流量網站架構核心技術這本書,相信很多讀者應該知道 OpenResty 應用仍是挺普遍的。程序員

扯這麼多,其實今天就是想體驗一把,因爲博主網站自己安裝配置了Nginx服務,湊巧另外一臺服務器也裝了Nginx,想一想還有一臺免費半年的機器閒着,服務器裝的是centos7。數據庫

安裝

推薦您使用yum安裝如下的開發庫:後端

yum install readline-devel pcre-devel openssl-devel -y

下載最新版本:centos

wget https://openresty.org/download/openresty-1.11.2.4.tar.gz

解壓並重命名:緩存

tar -xvf openresty-1.11.2.4.tar.gzmv openresty-1.11.2.4 openresty

安裝配置:安全

./configure

您可使用下面的命令來編譯安裝:服務器

make && make install

若是您的電腦支持多核 make 工做的特性, 您能夠這樣編譯安裝:架構

make && make install   -j2

爲了方便啓動,創建軟鏈接:

ln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx

配置文件

vi /usr/local/openresty/nginx/conf/nginx.conf
server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            default_type text/html;
            content_by_lua 'ngx.say("<p>Hello,科幫網</p>")';
        }
}

啓動服務:執行 nginx命令便可,而後訪問 http://47.94.232.109/

使用場景

和大部分知名開源軟件誕生在歐美國家不一樣,OpenResty 自身和依賴的主要組件都是金磚國家的開發者發明的,這點還挺有意思。

Nginx 是俄羅斯人發明的, Lua 是巴西幾個教授發明的,國人章亦春把 LuaJIT VM 嵌入到 Nginx 中,實現了 OpenResty 這個高性能服務端解決方案。

經過 OpenResty,你能夠把 nginx 的各類功能進行自由拼接, 更重要的是,開發門檻並不高,這一切都是用強大輕巧的 Lua 語言來操控。

  • 在 Lua 中揉和和處理各類不一樣的 nginx 上游輸出(Proxy,Postgres,Redis,Memcached 等)

  • 在請求真正到達上游服務以前,Lua 能夠爲所欲爲的作複雜的訪問控制和安全檢測

  • 爲所欲爲的操控響應頭裏面的信息

  • 從外部存儲服務(好比 Redis,Memcached,MySQL,Postgres)中獲取後端信息,並用這些信息來實時選擇哪個後端來完成業務訪問

  • 在內容 handler 中隨意編寫複雜的 Web 應用,使用 同步但依然非阻塞 的方式,訪問後端數據庫和其餘存儲

  • 在 rewrite 階段,經過 Lua 完成很是複雜的 URL dispatch

  • 用 Lua 能夠爲 nginx 子請求和任意 location,實現高級緩存機制

相關站點

Nginx 維基官網:http://wiki.nginx.org/
OpenResty 中文官網:http://openresty.org/cn/
Nginx使用教程:https://blog.52itstyle.com/tag/nginx/

最後,願兩個老羅都可以實現本身的夢想,願每一個程序員都能找到好的歸宿,信春哥得永生,最主要的是姿式要帥。

相關文章
相關標籤/搜索