使用Nginx+Lua進行Web開發

    Nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。Lua由標準C編寫而成,幾乎在全部操做系統和平臺上均可以編譯,運行,一個完整的Lua解釋器不過200k,在目前全部腳本引擎中,Lua的速度是最快的。二者的結合能夠開發出高性能的Web應用。 php

    Openresty就把nginx和lua結合在了一塊兒,OpenResty 是一個基於 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用於方便地搭建可以處理超高併發、擴展性極高的動態 Web 應用、Web 服務和動態網關。


    OpenResty 經過匯聚各類設計精良的 Nginx 模塊(主要由 OpenResty 團隊自主開發),從而將 Nginx 有效地變成一個強大的通用 Web 應用平臺。這樣,Web 開發人員和系統工程師能夠使用 Lua 腳本語言調動 Nginx 支持的各類 C 以及 Lua 模塊,快速構造出足以勝任 10K 乃至 1000K 以上單機併發鏈接的高性能 Web 應用系統。


    OpenResty 的目標是讓你的Web服務直接跑在 Nginx 服務內部,充分利用 Nginx 的非阻塞 I/O 模型,不單單對 HTTP 客戶端請求,甚至於對遠程後端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進行一致的高性能響應。
     html

    1.安裝openresty java

    Ubuntu下: nginx

    

sudo apt-get install openresty



    Mac下:

brew install homebrew/nginx/openresty



    2.配置nginx.conf

    給openresty添加一個server配置 shell

    

lua_package_path '/Users/M/workspace/lua/tuyang-lua/?.lua;;';
server {
        listen       80;
        server_name  lua.tuyang.dev;
        charset utf8;

        #access_log  logs/host.access.log  main;
        root /Users/M/workspace/lua/tuyang-lua;
        location / {
            index  index.html index.htm index.php;
        }
        location ~ ^/app/([-_0-9a-zA-Z]+) {
                lua_code_cache off;
                default_type 'text/plain';
                content_by_lua_file $document_root/$1.lua;
        }
    }



    lua_package_path設置lua腳本搜尋路徑,至關於Java中的classPath

    location ~ ^/app/ 全部/app路徑的url請求都將被該location攔截並響應 後端

    lua_code_cache off 關閉lua腳本緩存,這樣在開發過程當中,修改了lua腳本以後,不用重啓服務器就能夠看到修改後的結果了 瀏覽器

    content_by_lua_file查找執行的lua腳本 緩存

    $document_root 定義的server根目錄,此時爲/Users/M/workspace/lua/tuyang-lua 服務器

    3.重啓下openresty服務器 併發

sudo openresty -s reload



    4.helloWorld教程

    在剛纔配置的server根目錄下面建立一個文件,命名爲index.lua

ngx.say('<p>Hello world!</p>')



    5.使用瀏覽器訪問

相關文章
相關標籤/搜索