第三世界大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: ginx-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=”CCCC_TEST_FLAGS $CC_AUX_FLAGS \

ngx_test=”gcc CCTESTFLAGSCC_AUX_FLAGS \

-o NGXAUTOTESTNGX_AUTOTEST.c NGXLDOPTngx_feature_libs”

eval “ngxtest>>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 NGXAUTOTEST>>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

include

include

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 ngin x

  1. 安装运行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 )

    <转载请注名来路>

时间: 05-31

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

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

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

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是一

嵌入式系统中为什么要添加操作系统?(转)

原帖地址:http://blog.sina.com.cn/s/blog_8f396e370100vjs0.html 嵌入式系统中为什么要添加操作系统?这个问题很多人都能回答,并且也一定要很多答案.当外行问及我这个问题的时候,我说是想让程序脱离硬件,提高程序的可移植性和可读性:另外就是当系统比较复杂的情况下,操作系统可以为这个复杂的系统提供管理机制,开发人员只要完成功能函数,并且添加任务即可,不用再去管不同的任务之间通信以及各个不同功能之间如何协同工作等等的问题.但是这样说出来,似乎没法让他们感受

高性能web服务器nginx(一)之基本概念

说明本篇文章大部分参考此人的博文:http://freeloda.blog.51cto.com/2033581/1285722,建议若想继续深入学习nginx时最好先看下此人所写的文章,总结的很详细,然后在找相关的书籍和查阅官方文档学习. 一.NGINX介绍 1 简介 传统上基于进程或线程模型架构的web服务通过每进程或每线程处理并发连接请求,这势必会在网络和I/O操作时产生阻塞,其另一个必然结果则是对内存或CPU的利用率低下.生成一个新的进程/线程需要事先备好其运行时环境,这包括为其分配堆内存

树莓派做web服务器(nginx、Apache)

一想到Linux Web服务器,我们首先想到的是: Apache + MySql + Php. Apache:是世界使用排名第一的Web服务器软件. 可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件. MySQL:是一个关系型数据库管理系统,由瑞典MySQL AB公司开发.是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(关系数据库管理系统)应用软件之一. PHP:(外文名: Hypertext Preproces

高性能web服务器nginx(三)之源码搭建LNMP

一.环境准备 1.关闭防火墙及selinux [[email protected] ~]# iptables -F [[email protected] ~]# getenforce  Disabled 2.更改yum源(此步根据自身需要更改) [[email protected] ~]# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-6.repo [[email protected] ~]# mv /etc/yu

高性能web服务器nginx(二)之常用功能举例

一.配置使用nginx 1.提供测试页 [[email protected] ~]# mkdir /www/a.com/htdoc [[email protected] ~]# cat /www/a.com/htdoc/index.html  <h1>www.a.com</h1> [[email protected] ~]# chown -R nginx.nginx /www/a.com/htdoc/ 2.备份配置文件并简要更改配置文件 [[email protected] ~]#

Windows Server 2008 R2的web服务器nginx和Apache的比较

因为很喜欢nginx,所以也想尝试在Windows下使用nginx,前面安装配置都挺顺利,把域名解析尽量后,通过域名代理访问jboss,却异常的慢,起码有3秒的时间才显示页面,而这个页面是jboss的默认页面,超级简单毫无业务逻辑的页面. 无奈之下,还是用回Apache. 安装过程和配置自不必说. 通过比较,在Windows下,Apache代理jboss的页面,访问速度提高了.虽然没有更多的数据来论证,但是在Windows下还是用Apache比较好. 用httping来测试nginx表现,大失所

高性能Web服务器Nginx及相关新技术的应用实践-张宴

http://files.cnblogs.com/files/niaowo/%E9%AB%98%E6%80%A7%E8%83%BDWeb%E6%9C%8D%E5%8A%A1%E5%99%A8Nginx%E5%8F%8A%E7%9B%B8%E5%85%B3%E6%96%B0%E6%8A%80%E6%9C%AF%E7%9A%84%E5%BA%94%E7%94%A8%E5%AE%9E%E8%B7%B5-%E5%BC%A0%E5%AE%B4.pdf