如何快速用openresty搭建高效能服務端(Nginx+lua)
高效能服務端兩個重要要素:快取+語言支援非同步非堵塞 快取:記憶體>SSD>機械磁碟 本機>網路 程序內>程序間 非同步非阻塞:事件驅動方式(事件完成後再通知) OpenResty:顛覆了高效能服務端的開發模式(Nginx+LuaJIT) Nginx:負載均衡+反向代理 Nginx c module Lua:嵌入式指令碼語言(網遊中用的較多) LuaJIT:OpenResty用的LuaJIT主打效能的Lua OpenResty原理:LuaJIT的虛擬機器嵌入到Nginx的worker中,所以效率特別高
對比: node.js:第一門將非同步非阻塞特性放入自己語言中的,但是node.js用回撥callback實現非同步非阻塞 Python:版本跨度大 Golang: SystemTap: BaaS:
openresty安裝搭建
-
使用 apt-get安裝以下的開發庫: apt-get install libpcre3-dev libssl-dev perl make build-essential curl
-
下載 從下載頁 Download下載最新的 OpenResty® 原始碼包,並且像下面的示例一樣將其解壓: tar -xzvf openresty-VERSION.tar.gz VERSION 的地方替換成您下載的原始碼包的版本號,比如說 0.8.54.6。 ./configure
-
然後在進入 openresty-VERSION/ 目錄, 然後輸入以下命令配置: ./configure 預設, --prefix=/usr/local/openresty 程式會被安裝到/usr/local/openresty目錄。 您可以指定各種選項,比如 ./configure --prefix=/opt/openresty –with-luajit –without-http_redis2_module –with-http_iconv_module –with-http_postgres_module 試著使用 ./configure --help 檢視更多的選項。 配置檔案(./configure script)執行出錯可以到 build/nginx-VERSION/objs/autoconf.err 找到。 VERSION 的地方必須與OpenResty版本號相對應, 比如 0.8.54.6。
-
make 您可以使用下面的命令來編譯: make 如果您的電腦支援多核 make 工作的特性, 您可以這樣編譯: make -j2 假設您是的機器是雙核。
-
make install 如果前面的步驟都沒有問題的話,您可以使用下面的命令安裝l OpenResty到您的系統之中:make install 在 Linux,通常包括 sudo來執行root許可權做的事情。
-
啟動(路徑請參考修改) sudo /opt/openresty/nginx/sbin/nginx -c /opt/openresty/nginx/conf/nginx.conf -p /opt/openresty/nginx/
openserty連線MySQL
openserty連線Redis
openserty快取
share_dic(純記憶體工作。預置記憶體大小)
1、nginx.con修改加上: 2、修改lua(充分利用記憶體卡空間。多個worker用同一份資料。但是會產生鎖的操作。)