ubuntu怎么将第三方模块编译到nginx包中

66次阅读
没有评论

共计 3588 个字符,预计需要花费 9 分钟才能阅读完成。

本篇内容介绍了“ubuntu 怎么将第三方模块编译到 nginx 包中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

获取额外的模块

以 Pagespeed、upload 模块为例。

获取 pagespeed 模块:

1

2

3

4

5

6

7

8

9

sudo mkdir /opt/pagespeed

cd /opt/pagespeed

NPS_VERSION=1.9.32.2

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/release–${NPS_VERSION}–beta.zip

sudo unzip release–${NPS_VERSION}–beta.zip

cd ngx_pagespeed–release–${NPS_VERSION}–beta/

sudo wget https://dl.google.com/dl/page–speed/psol/${NPS_VERSION}.tar.gz

sudo tar –xzvf ${NPS_VERSION}.tar.gz # extracts to psol/

# Gives us directory /opt/pagespeed/ngx_pagespeed-release-1.9.32.2-beta

获取 upload 模块:

1

2

3

4

5

sudo mkdir /opt/httpupload

cd /opt/httpupload

sudo wget https://github.com/vkholodkov/nginx–upload–module/archive/2.2.zip

sudo unzip 2.2.zip

# Gives us directory: /opt/httpupload/nginx-upload-module-2.2

获取 nginx 源码包和依赖关系

添加 nginx 源,调整、重建并重新安装 nginx。

添加 PPA 源文件,并确保 deb-src 指令没被注释掉。

1

2

3

$ vim /etc/apt/sources.list.d/nginx–stable–trusty.list

deb http://ppa.launchpad.net/nginx/stable/ubuntu trusty main

deb–src http://ppa.launchpad.net/nginx/stable/ubuntu trusty main

更新

1

$ sudo apt–get update

获取源码包和依赖包

1

2

3

4

5

6

7

8

9

10

11

# Install package creation tools

sudo apt–get install –y dpkg–dev

sudo mkdir /opt/rebuildnginx

cd /opt/rebuildnginx

# Get Nginx (ppa:nginx/stable) source files

sudo apt–get source nginx

# Install the build dependencies

sudo apt–get build–dep nginx

1

2

3

4

5

$ ls –lah /opt/rebuildnginx

drwxr–xr–x 10 root root  4096 Dec 14 16:37 nginx–1.6.2/

–rw–r—r— 1 root root 934244 Dec 14 02:10 nginx_1.6.2–5+trusty0.debian.tar.gz

–rw–r—r— 1 root root  2798 Dec 14 02:10 nginx_1.6.2–5+trusty0.dsc

–rw–r—r— 1 root root 804164 Sep 18 21:31 nginx_1.6.2.orig.tar.gz

ppa:nginx/stable 提供多个 nginx 可用包:common, light, full,extras。当执行 apt-get install -y nginx 时,是安装 full 版本的。

light 比 common 少了  –without-* 的选项包。

编辑 /opt/rebuildnginx/nginx-1.6.2/debian/rules 文件来添加第三方模块。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

full_configure_flags := \

 $(common_configure_flags) \

 —with–http_addition_module \

 —with–http_dav_module \

 —with–http_geoip_module \

 —with–http_gzip_static_module \

 —with–http_image_filter_module \

 —with–http_spdy_module \

 —with–http_sub_module \

 —with–http_xslt_module \

 —with–mail \

 —with–mail_ssl_module \

 —add–module=$(MODULESDIR)/nginx–auth–pam \

 —add–module=$(MODULESDIR)/nginx–dav–ext–module \

 —add–module=$(MODULESDIR)/nginx–echo \

 —add–module=$(MODULESDIR)/nginx–upstream–fair \

 —add–module=$(MODULESDIR)/ngx_http_substitutions_filter_module \

 —add–module=/opt/httpupload/nginx–upload–module–2.2 \

 —add–module=/opt/pagespeed/ngx_pagespeed–release–1.9.32.2–beta

重建 nginx 包

1

2

cd /opt/rebuildnginx/nginx–1.6.2

sudo dpkg–buildpackage –b

重建完后,会在 /opt/rebuildnginx 目录下生产一堆.deb 文件,可以使用这些文件来安装 nginx。由于我们调整了‘full’包,因此需要使用该包来安装 nginx。该包有两个:

1

2

nginx–full–dbg_1.6.2–5+trusty0_amd64.deb

nginx–full_1.6.2–5+trusty0_amd64.deb

dbg 的是 debug 版本。

重新安装 nginx,可能需要先删除之前安装的 nginx。

1

2

3

# .deb files appear one level above the `nginx-1.6.2` directory

cd /opt/rebuildnginx

sudo dpkg —install nginx–full_1.6.2–5+trusty0_amd64.deb

查看已安装的模块

1

2

3

4

5

6

7

8

$ nginx –V

nginx version: nginx/1.6.2

TLS SNI support enabled

configure arguments:

 —with–cc–opt=‘-g -O2 -fstack-protector –param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2’

 # A bunch of these removed for brevity

 —add–module=/opt/httpupload/nginx–upload–module–2.2 # yay!

 —add–module=/opt/pagespeed/ngx_pagespeed–release–1.9.32.2–beta # yay!

配置 pagespeed

1

2

3

4

5

6

7

8

9

10

11

12

13

14

sudo mkdir –p /var/cache/ngx_pagespeed/

# Stuff up here omitted

server {

 pagespeed On;

 pagespeed FileCachePath“/var/cache/ngx_pagespeed/”;

 pagespeed EnableFilters combine_css,combine_javascript;

 # Stuff down here omitted

}

$ sudo service nginx configtest

* Testing nginx configuration [OK]

# Restart, assuming it’s OK

$ sudo service nginx restart

“ubuntu 怎么将第三方模块编译到 nginx 包中”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计3588字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)