天天看點

【nginx+lua高性能web應用開發(一):環境搭建】

<a target="_blank" href="http://openresty.org/">http://openresty.org/</a>

作者很nb,國人開發的。

直接從openresty下載下傳源代碼進行編譯安裝,已經包括了一個最新的nginx代碼。

我使用的是64bit的centos搭建環境的。

首先按照所需要的lib庫。(lib必須安裝否則編譯出現問題)

yum -y install gcc gcc-c++ autoconf make pcre-devel openssl openssl-devel

wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz

安裝:

tar xzvf ngx_openresty-version.tar.gz

cd ngx_openresty-version/

./configure --with-luajit

make

make install

/usr/local/openresty/nginx 預設的安裝位置

啟動nginx。

/usr/local/openresty/nginx/sbin/nginx -s stop

/usr/local/openresty/nginx/sbin/nginx -p /usr/local/openresty/nginx/ -c conf/nginx.conf

修改iptables

vi /etc/sysconfig/iptables

增加

-a input -m state --state new -m tcp -p tcp --dport 80 -j accept

-a input -m state --state new -m tcp -p tcp --dport 8080 -j accept

service iptables restart

然後nginx就可以通路了。這個是帶lua版本的nginx。

【nginx+lua高性能web應用開發(一):環境搭建】

增加nginx配置:

        location /hello {

            default_type text/html;

            content_by_lua '

                ngx.say("&lt;p&gt;hello, world&lt;/p&gt;")

ngx.say(tostring(ngx.var.remote_addr),"&lt;br/&gt;")

ngx.say(tostring(ngx.var.arg_name),"&lt;br/&gt;")

            ';

        }

【nginx+lua高性能web應用開發(一):環境搭建】

這樣就可以使用nginx開發動态接口了。

niginx的其他參數:

非常多的擴充和使用方法

https://github.com/chaoslawful/lua-nginx-module

 local mysql = require "resty.mysql"

    local memcached = require "resty.memcached"

    local function query_mysql()

        local db = mysql:new()

        db:connect{

                    host = "127.0.0.1",

                    port = 3306,

                    database = "test",

                    user = "monty",

                    password = "mypass"

                  }

        local res, err, errno, sqlstate =

                db:query("select * from cats order by id asc")

        db:set_keepalive(0, 100)

        ngx.say("mysql done: ", cjson.encode(res))

    end

    local function query_memcached()

        local memc = memcached:new()

        memc:connect("127.0.0.1", 11211)

        local res, err = memc:get("some_key")

        ngx.say("memcached done: ", res)

ngx.thread.spawn(query_mysql)      -- create thread 1

    ngx.thread.spawn(query_memcached)  -- create thread 2

rpm -uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum install lua lua-devel lua-static

rhel/centos 6 64 bit os

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

rpm -uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

[http://www.tecmint.com/install-and-enable-rpmforge-repository-in-rhel-centos-6-5-4]

關閉yum-fastestmirror

vi /etc/yum/pluginconf.d/fastestmirror.conf

#禁用

enable=0

繼續閱讀