前段時間老羅退出獲得專欄事情鬧得沸沸揚揚,另外一位老羅也給出了合理的會員退費,感受獲得仍是蠻貼心的。想一想也是,畢竟精力有限,現在老羅也有了十億的投資,集中精力作好手機纔是主業。記得老羅剛開專欄那段時間很想訂閱一把,但仍是忍住了,年初就訂閱了吳軍博士的專欄,想一想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/
最後,願兩個老羅都可以實現本身的夢想,願每一個程序員都能找到好的歸宿,信春哥得永生,最主要的是姿式要帥。