世界第三大Web服务器-Nginx在嵌入式系统中应用(ARM处理器)

      本文作为老技术人对国庆(2014.10.01)的献礼,有限开放,属于本工作室5A级保密文件,不提供技术咨询:

Nginx("Engine X")作为世界第三大Web服务器,如果能应用到嵌入式系统中应用中是多么美好的事情,如下将告诉你实现的可能, 实现(通过验证)最小硬件配置(300Mhz ARM9,128MB内存)。

1. 交叉编译PCRE库Nginx对PCRE库有依赖,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl
兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。

下载: pcre-8.30.tar.bz2(参考放置路劲:/home/fqheda/XT-linux/LXT5/Eweb/eweb-v3.0.3/)

tar  -jxvf  pcre-8.30.tar.bz2

chmod  -Rf  777 pcre-8.30

cd pcre-8.30

./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/nginx

make

make install

      2. 交叉编译Nginx,Nginx不多做解释,假设"你懂的"。

下载: nginx-1.0.15.tar.gz(参考放置路劲:/home/fqheda/XT-linux/LXT5/Eweb/eweb-v3.0.3/)

tar  -zxvf  nginx-1.0.15.tar.gz

chmod  -Rf  777 nginx-1.0.15

cd nginx-1.0.15

      打补丁:

补丁a:nginx-1.0.15\auto\cc\conf

case $NGX_CC_NAME in

arm-linux-gcc)

# Modify By XinTinG

# gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2

  补丁b-1:nginx-1.0.15\auto\types\sizeof

----------------------------------------

checking for $ngx_type size

END

## Modify By XinTinG

ngx_size=4

   补丁b-2:nginx-1.0.15\auto\types\sizeof

## Modify By XinTinG

##ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \

ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS \

-o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"

##eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"

##if [ -x $NGX_AUTOTEST ]; then

##   ngx_size= `$NGX_AUTOTEST`

##    echo " $ngx_size bytes"

##fi

  补丁c:nginx-1.0.15\auto\feature

yes)

# /bin/sh is used to intercept "Killed" or "Abort trap" messages

##if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then

echo " found"

ngx_found=yes

if test -n "$ngx_feature_name"; then

have=$ngx_have_feature . auto/have

fi

## Modify By XinTinG

##else

##    echo " found but is not working"

##fi

;;

补丁d:nginx-1.0.15\configure

if test -z "$NGX_PLATFORM"; then

echo "checking for OS"

##NGX_SYSTEM=`uname -s 2>/dev/null`    ## Modify By XinTinG

##NGX_RELEASE=`uname -r 2>/dev/null`

##NGX_MACHINE= "arm" ##`uname -m 2>/dev/null`

补丁e:nginx-1.0.15\src\os\unix\ngx_time.h

#include <time.h>         // Modify By XinTinG

#include <ngx_config.h>

#include <ngx_core.h>

补丁f:nginx-1.0.15\src\os\unix\ngx_errno.h

#define NGX_ECANCELED     ECANCELED

#define NGX_EILSEQ        EILSEQ

#define NGX_ENOMOREFILES  0

#define NGX_SYS_NERR      1       // Modify By XinTinG

     交叉编译:

export CC=arm-linux-gcc

export LD=arm-linux-ld

export AR=arm-linux-ar

export NGX_SYSTEM=linux

export NGX_RELEASE=3.2-XT5

export NGX_MACHINE=arm

cd nginx-1.0.15

make clean

./configure --with-google_perftools_module --with-http_stub_status_module --prefix=/home/nginx --with-pcre=/home/fqheda/XT-linux/LXT5/Eweb/eweb-v3.0.3/pcre-8.30 --with-cc-opt="-O2 -Wall -Wpointer-arith
-I/home/nginx/include" --with-ld-opt="-L/home/nginx/lib"

make CPU=arm

make install

     打安装包:

cd /home

tar -jcvf nginx.tar.bz2 nginx

    3. 安装运行Nginx (ARM板开发平台)

      nginx.tar.bz2  解压到arm板linux shell控制台中home文件夹;

      定向nginx动态库位置 :  export LD_LIBRARY_PATH=/home/nginx/lib:$LD_LIBRARY_PATH

      启动nginx :  /home/nginx/sbin/nginx -c /home/nginx/conf/nginx.conf

        注:测试(http://arm_board_ip)前,请认真理解配置文件nginx.conf(可能需要修改),本移植已在全国各地近千台物联网(嵌入式)设备上良好运行(相当于每台设备安装了一个小型网站),不要轻易怀疑移植的正确性!

(作者 冯青华  信庭嵌入式工作室(www.xteda.com)- CEO )

<转载请注名来路>

时间: 2024-10-11 05:51:24

世界第三大Web服务器-Nginx在嵌入式系统中应用(ARM处理器)的相关文章

第三世界大Web服务器-Nginx在嵌入式系统中应用(ARM处理器)

本文作为老技术人对国庆(2014.10.01)的献礼,有限开放,属于本工作室5A级保密文件,不提供技术咨询: Nginx("Engine X")作为世界第三大Web服务器,如果能应用到嵌入式系统中应用中是多么美好的事情,如下将告诉你实现的可能, 实现(通过验证)最小硬件配置(300Mhz ARM9,128MB内存). 交叉编译PCRE库 ,Nginx对PCRE库有依赖,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼

Nginx在嵌入式系统中的应用

-----------------本文转载自 http://blog.csdn.net/xteda/article/details/39708009 ---------------------------- Technorati 标签: nginx ARM (作者 冯青华  信庭嵌入式工作室(www.xteda.com)- CEO Blog:http://blog.csdn.net/fqheda )                                 <转载请注名来路> 本文作为老

三大WEB服务器对比分析(apache ,lighttpd,nginx)

一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多OpenSource轻量级的web server中较为优秀的一个.支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能. Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量. Fastcg

[转]三大WEB服务器对比分析(apache ,lighttpd,nginx)

原博文地址:http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html 一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多OpenSource轻量级的web server中较为优秀的一个.支持FastCGI, CGI, Auth, 输出压缩(output compress), U

WEB服务器-Nginx之虚拟主机、日志、认证及优化

WEB服务器-Nginx之虚拟主机.日志.认证及优化 概述 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一

高性能Web服务器Nginx

高性能Web服务器Nginx介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,可以运行在UNIX.GUN/LINUX.BSD.MAC OS X以及Microsoft Windows等操作系统中,中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. Nginx的功能 Nginx的模块从功能上分为

高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式

通过<高性能Web服务器Nginx的配置与部署研究——(11)应用模块之Memcached模块的两大应用场景>一文,我们知道Nginx从Memcached读取数据的方式,如果命中,那么效率是相当高的.那么: 1. 如果不命中呢? 我们可以到相应的数据服务器上读取数据,然后将它缓存到Nginx服务器上,然后再将该数据返回给客户端.这样,对于该资源,只有穿透 Memcached的第一次请求是需要到数据服务器读取的,之后在缓存过期时间之内的所有请求,都是读取Nginx本地的.不过Nginx的 pro

高性能Web服务器Nginx使用指南

Nginx是一个高性能的http服务器和反向代理服务器,是一个高度模块化的web服务器,和Apache的模块化不同,Nginx的模块不支持动态编译,Nginx要加入新的第三方模块的时候,必须先下载模块,然后重新编译Nginx,而Apache只需要将新加入的模块编译成so文件,然后配置文件指定是否加载即可,无需重新编译Apache.并且Nginx的rewrite模块会使用正则表示式进行匹配,因此需要pcre软件库的支持,另外ssl加密需要openssl-devel软件库的支持,gzip压缩传输需要

搭建属于你的家庭网络实时监控–HTML5在嵌入式系统中的应用&#183;高级篇

*本文已刊登在<无线电>2014年第6期 <搭建属于你的在线实时采集系统>中已经对HTML5平台有了初步的认识,并基于此向大家展示了如何将采集到的数据上传至网络,实现实时观测.HTML 5是近十年来Web开发标准最巨大的飞跃.想必你已经体会到了HTML5的便捷之处,为了帮助大家更好在此平台上拓展应用,本文更加深入的探析"智能家居"与HTML5的完美结合,让家庭网络实时监控轻松实现. 关于智能家居  2013年,太多公司包括三星和飞利浦在内都对智能家居动了念头,在