共計 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 小編將為大家輸出更多高質量的實用文章!