OpenResty:經過 Lua 擴展 NGINX 實現的可伸縮的 Web 平臺

關於html

http://openresty.org/cn/about.htmlnginx

這個開源 Web 平臺主要由章亦春(agentzh)維護。在 2011 年以前曾由淘寶網贊助,在後來的 2012 ~ 2016 年間主要由美國的 CloudFlare 公司 提供支持。目前,OpenResty® 主要由 OpenResty 軟件基金會和 OpenResty Inc. 公司提供支持。git

由於大部分 Nginx 模塊都是由本軟件包的維護者開發,因此能夠確保全部這些模塊及其餘組件能夠很好地一塊兒工做。github

打包的各個軟件組件版權屬於各自的版權持有者。web

本網站是一個全動態的 Web 應用,徹底基於 OpenResty® 平臺和 PostgreSQL 數據庫構建。其實現開源在 下面這個 GitHub 倉庫中:redis

https://github.com/openresty/openresty.org數據庫

若是你但願編輯和改進這個網站的話,請隨意創建這個倉庫的分支,或者直接聯繫咱們索取 git 提交權限。後端

OpenResty®

 

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

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

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

參考 組件 能夠知道 OpenResty® 中包含了多少軟件。

參考 上路 學習如何從最簡單的 hello world 開始使用 OpenResty® 開發 HTTP 業務,或前往 下載 直接獲取 OpenResty® 的源代碼包開始體驗。

構建 OpenResty

http://openresty.org/cn/installation.html

下載

從下載頁 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

Solaris的用戶請注意:

對於 Solaris,安裝開發庫通常經過 OpenSSL 的形式插入 /lib, 所以當編譯時出現 missing OpenSSL 說明您已經安裝過了t, 特別是一些選項的時候 --with-ld-opt='-L/lib' 。

make

您可使用下面的命令來編譯:

make

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

make -j2

假設您是的機器是雙核。

make install

若是前面的步驟都沒有問題的話,您可使用下面的命令安裝l OpenResty到您的系統之中:

make install

在 Linux,一般包括 sudo來執行root權限作的事情。

 

 

Getting Started

Yichun Zhang , 03 Nov 2011 (created 20 Jun 2011)

 

 

First of all, please go to the Download page to get the source code tarball of OpenResty, and see the Installation page for how to build and install it into your system.

HelloWorld

Prepare directory layout

We first create a separate directory for our experiments. You can use an arbitrary directory. Here for simplicity, we just use ~/work:

mkdir ~/work
cd ~/work
mkdir logs/ conf/

Note that we've also created the logs/ directory for logging files and conf/ for our config files.

Prepare the nginx.conf config file

Create a simple plain text file named conf/nginx.conf with the following contents in it:

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}
http {
    server {
        listen 8080;
        location / {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>hello, world</p>")
            ';
        }
    }
}

If you're familiar with Nginx configuration, it should look very familiar to you. OpenResty is just an enhanced version of Nginx by means of addon modules anyway. You can take advantage of all the exisitng goodies in the Nginx world.

Start the Nginx server

Assuming you have installed OpenResty into /usr/local/openresty (this is the default), we make our nginx executable of our OpenResty installation available in our PATH environment:

PATH=/usr/local/openresty/nginx/sbin:$PATH
export PATH

Then we start the nginx server with our config file this way:

nginx -p `pwd`/ -c conf/nginx.conf

Error messages will go to the stderr device or the default error log files logs/error.log in the current working directory.

Access our HelloWorld web service

We can use curl to access our new web service that says HelloWorld:

curl http://localhost:8080/

If everything is okay, we should get the output

<p>hello, world</p>

You can surely point your favorite web browser to the location http://localhost:8080/.

Test performance

See Benchmark for details.

Where to go from here

View the documentation of each component at the Components page and find Nginx related stuff on the Nginx Wiki site.

相關文章
相關標籤/搜索