【nginx+lua高性能web应用开发(一):环境搭建】

1,官方网站:

http://openresty.org/

作者很NB,国人开发的。

2,安装nginx+lua环境

直接从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。

2,hello world

增加nginx配置:

        location /hello {
            default_type text/html;
            content_by_lua '
                ngx.say("<p>hello, world</p>")
ngx.say(tostring(ngx.var.remote_addr),"<br/>")
ngx.say(tostring(ngx.var.arg_name),"<br/>")
            ';
        }

这样就可以使用nginx开发动态接口了。

niginx的其他参数:

非常多的扩展和使用方法
https://github.com/chaoslawful/lua-nginx-module

3,连接数据库redis

 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)
    end

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

4,其他rpm库

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

时间: 2024-09-17 04:34:02

【nginx+lua高性能web应用开发(一):环境搭建】的相关文章

想做高性能web应用开发,求大神指导

问题描述 本人大学生,学习javaweb开发,掌握了Struts.springmvc.springsecurity.spring核心和hibernate等开发框架.并且掌握了一些web前段开发技术.目前想着手学习开发高性能的web应用,有一下问题请教各位大神:1.10万并发量以下的web应用,要优化性能,主要应该专注哪方面?钻研java语言机制,提高代码质量?钻研数据库,优化数据库访问?还是专注http.tcp方面?2.听老师说,nginx对静态资源访问的性能提升明显.我想知道,对于没有做高性能

Android NDK开发的环境搭建与简单示例_Android

一.NDK与JNI简介 NDK全称为native development kit本地语言(C&C++)开发包.而对应的是经常接触的Android-SDK,(software development kit)软件开发包(只支持java语言开发). 简单来说利用NDK,可以开发纯C&C++的代码,然后编译成库,让利用Android-SDK开发的Java程序调用.NDK开发的可以称之为底层开发或者jni(java native interface)层开发,SDK开发可以称为上层开发. Andro

Python开发入门环境搭建

摘要: Python是一种高级计算机程序设计语言.举个例子C语言要写1000行代码,Java只需要写100行,而Python可能只要20行. Python是一种高级计算机程序设计语言.举个例子C语言要写1000行代码,Java只需要写100行,而Python可能只要20行. Python基本概念 Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由

【REACT NATIVE 跨平台应用开发】环境搭建问题记录&amp;&amp;XCODE7模拟器上COMMAND+R失效的几种替换方法

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2147.html React Native 这里不多介绍,其实就是个跨平台开发原生应用的开源引擎. 更详细的介绍,大家可以搜索"facebook react native" 或 "taobao react native" 附上 React Native 官方网站:http://react

RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建

一.简介     RocketMQ的前身是Metaq,当Metaq3.0发布时,产品名称改为RocketMQ     MetaQ2.x版本由于依赖了alibaba公司内部其他系统,对于公司外部用户使用不够友好,推荐使用3.0版本.      项目地址:https://github.com/alibaba/RocketMQ 二.安装RocketMQ      安装RocketMQ需要jdk1.6, maven,git环境      如果本机没有安装git,请使用如下命令安装      yum in

android ndk开发之环境搭建

一:Cygwin的下载与安装:         cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用.简单来说,我们直接用他来编译我们的c/c++代码,而不必放到Linux虚拟机或者Linux系统上去编译我们的代码,方便大家在windows上能直接开发并生成我们需要的.so库文件.由于篇幅有限,Cygwi

Linux平台Swift语言开发学习环境搭建

1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快.我也兴奋的起来看了一遍关于Swift开源的最新消息.众所周知,苹果平台的Swift语言已经出来了一年半了,一直在成长,经历了好几个版本.许多人盼望的swift开源是希望可以在除了苹果平台之外的平台可以运用这个新语言.比如有人希望将来可以用swift也可以撸一撸后台开发之类,理论上是没问题的,但是同样也有人会喷这么一个愿景,但是开源一出后,多多少少社区人员会去往这个方面去努力

使用cordova+Ionic+AngularJs进行Hybird App开发的环境搭建手册

一,所需工具       1,JDK:生成     2,安卓SDK开发环境     3,NodeJs:主要使用的还是npm     4,Python开发环境     5,VS 2012(2008,2015也可以,已亲测):安装这个主要是需要一些.net的东西,也没具体查是啥,图个省事.     6,cordova:起到一个移动中间件的作用,负责JS跟原生的一些交互.     7,Ionic    二,说说安装过程中的一些坑 1,JDK问题            建议选用1.7以上的版本,我们使用

mac开发android环境搭建步骤图解_Android

  1.Java JDK 需要先说明下,OS X系统是自带有Java JDK1.6的.不过这里我安装的是JDK7,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html.见下图: 下载后,双击安装,如下图: 2.ADT(Android Develop Bundle) 下载地址:http://developer.android.com/sdk/index.html 如下图: 下