Ubuntu下Nginx源码编译

来源:互联网 发布:数据库信息如何填写 编辑:程序博客网 时间:2024/06/18 12:04

Nginx源码下载地址:

        http://nginx.org/en/download.html

        解压命令 tar -zxvf nginx-1.8.1.tar.gz

        安装依赖库:

        1.PCRE

           # apt-get update
   # apt-get install libpcre3 libpcre3-dev

2.ZLIB

   sudo apt-get install zlib1g-dev
   3.openssl
   sudo apt-get install openssl
然后./configure,后面暂时不用参数,
结果会有
OpenSSL library is not used
sha1 library is not found
这个暂时不影响编译,Makefile能够正常生成。
最后make&&make install,看有没有权限问题,加上sudo就行
最后nginx目录是默认在/usr/local/nginx/下面


编译模块的动态链接库:(需要Nginx1.9以上版本支持)

./configure --add-dynamic-module=/opt/source/ngx_my_module/
$ make -f objs/Makefile modules
或者$ make modules
两个make命令是等价的,其中/opt/source/ngin_my_module/最好填写为绝对路径,不然可能报Nginx error, no config found

最后编译出来,so文件会出现在objs文件夹下面。

要使用so,在nginx.conf开头加上

load_module modules/ngx_my_module.so;

即可。

旧风格的config文件如下

ngx_addon_name=ngx_http_response_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_response_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_response_module.c"
新风格如下

ngx_addon_name=ngx_http_response_moduleif test -n "$ngx_module_link"; then    ngx_module_type=HTTP    ngx_module_name=ngx_http_response_module    ngx_module_srcs="$ngx_addon_dir/ngx_http_response_module.c"    . auto/moduleelse    HTTP_MODULES="$HTTP_MODULES ngx_http_response_module"    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_response_module.c"fi
新的方式利用“auto/module"脚本来建立许多事物,即新的方式可以用于动态模块和静态模块。


原创粉丝点击