1. 程式人生 > >如何快速用openresty搭建高效能服務端(Nginx+lua)

如何快速用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用同一份資料。但是會產生鎖的操作。)

lua-resty-lrucache(預置key個數;每個worker單獨佔用,不會產生鎖的競爭;但是你記憶體佔用叫道)

在這裡插入圖片描述