blob: d85f37b40a1fb210ecca74a12c1f23eff7b58862 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
NGX_PAGESPEED_VERSION=1.9.32.3
NGX_VERSION=1.6.2
BUILD_DIR=nginx-$(NGX_VERSION)
all: fetch build
fetch: fetch_core pagespeed fetch_dep
fetch_core:
# Downloading source
test -f nginx-$(NGX_VERSION).tar.gz || wget http://nginx.org/download/nginx-$(NGX_VERSION).tar.gz
# Downloading signature
test -f nginx-$(NGX_VERSION).tar.gz.asc || wget http://nginx.org/download/nginx-$(NGX_VERSION).tar.gz.asc
# Getting public key
gpg --keyserver keyserver.ubuntu.com --recv-keys A1C052F8
# Verifying archiv
gpg --verify nginx-$(NGX_VERSION).tar.gz.asc nginx-$(NGX_VERSION).tar.gz
mkdir -p $(BUILD_DIR)
tar xzf nginx-$(NGX_VERSION).tar.gz
fetch_dep:
cd $(BUILD_DIR) && git clone https://github.com/agentzh/headers-more-nginx-module.git
cd $(BUILD_DIR) && git clone https://github.com/nbs-system/naxsi.git
cd $(BUILD_DIR) && git clone https://github.com/FRiCKLE/ngx_cache_purge.git
cd $(BUILD_DIR) && git clone https://github.com/simpl/ngx_devel_kit.git
cd $(BUILD_DIR) && git clone https://github.com/agentzh/echo-nginx-module.git
cd $(BUILD_DIR) && git clone https://github.com/chaoslawful/lua-nginx-module.git
cd $(BUILD_DIR) && git clone https://github.com/wandenberg/nginx-push-stream-module.git
cd $(BUILD_DIR) && git clone https://github.com/arut/nginx-rtmp-module.git
cd $(BUILD_DIR) && git clone https://github.com/masterzen/nginx-upload-progress-module.git
cd $(BUILD_DIR) && git clone https://github.com/gnosek/nginx-upstream-fair.git
cd $(BUILD_DIR) && git clone https://github.com/aperezdc/ngx-fancyindex.git
cd $(BUILD_DIR) && git clone https://github.com/tony2001/ngx_http_pinba_module.git
cd $(BUILD_DIR) && git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
cd $(BUILD_DIR) && git clone https://github.com/pagespeed/ngx_pagespeed.git
cd $(BUILD_DIR) && git clone https://github.com/alibaba/nginx-http-concat/
cd $(BUILD_DIR) && git clone https://github.com/zebrafishlabs/nginx-statsd
cd $(BUILD_DIR) && git clone https://github.com/newobj/nginx-x-rid-header
cd $(BUILD_DIR) && git clone https://github.com/openresty/redis2-nginx-module
mkdir $(BUILD_DIR)/nginx-syslog && wget -O $(BUILD_DIR)/nginx-syslog/config https://raw.githubusercontent.com/gplessis/dotdeb-nginx/wheezy/debian/modules/nginx-syslog/config
build:
cd $(BUILD_DIR) && ./configure \
--with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2' \
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' \
--lock-path=/var/lock/nginx.lock \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=www-data \
--group=www-data \
--with-ipv6 \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_flv_module \
--with-http_secure_link_module \
--with-http_spdy_module \
--with-http_sub_module \
--with-http_addition_module \
--with-google_perftools_module \
--with-http_gunzip_module \
--with-http_random_index_module \
--with-http_geoip_module \
--add-module=headers-more-nginx-module \
--add-module=naxsi/naxsi_src \
--add-module=ngx_cache_purge \
--add-module=ngx_devel_kit \
--add-module=echo-nginx-module \
--add-module=lua-nginx-module \
--add-module=nginx-push-stream-module \
--add-module=nginx-rtmp-module \
--add-module=nginx-syslog \
--add-module=nginx-upload-progress-module \
--add-module=nginx-upstream-fair \
--add-module=ngx-fancyindex \
--add-module=ngx_http_pinba_module \
--add-module=ngx_http_substitutions_filter_module \
--add-module=./ngx_pagespeed \
--add-module=./nginx-http-concat \
--with-cc-opt=-I/usr/include/ossp \
--with-ld-opt=-lossp-uuid \
--add-module=./nginx-x-rid-header \
--add-module=./redis2-nginx-module \
--add-module=./nginx-statsd $(NGX_CONFIGURE)
cd $(BUILD_DIR)/ && \
bash -c "make -j $$(grep -c processor /proc/cpuinfo)"
install:
cd $(BUILD_DIR)/ && make install
clean:
rm nginx-$(NGX_VERSION).tar.gz
rm nginx-$(NGX_VERSION).tar.gz.asc
prepare:
@(lsb_release -a | grep Debian || ! test -z $(DEBIAN)) || (echo "You don't run Debian, do you? This section is optimized for the Debian GNU/Linux distro.\nOverwrite it with 'DEBIAN=1 make prepare'.\n" && exit 1)
dpkg -l | grep build-essential || apt-get install build-essential
dpkg -l | grep zlib1g-dev || apt-get install zlib1g-dev
dpkg -l | grep -E '^libpcre3$$' || apt-get install libpcre3
dpkg -l | grep -E '^libpcre3-dev$$' || apt-get install libpcre3-dev
dpkg -l | grep liblua5.1-0-dev || apt-get install liblua5.1-0-dev
dpkg -l | grep libossp-uuid-dev || apt-get install libossp-uuid-dev
dpkg -l | grep uuid-dev || apt-get install uuid-dev
dpkg -l | grep libgoogle-perftools-dev || apt-get install libgoogle-perftools-dev
dpkg -l | grep libssl-dev || apt-get install libssl-dev
dpkg -l | grep libgeoip-dev || apt-get install libgeoip-dev
pagespeed:
@(test -d $(BUILD_DIR)/ngx_pagespeed && cd $(BUILD_DIR)/ngx_pagespeed && \
echo "Downloading pagespeed library." && \
wget https://dl.google.com/dl/page-speed/psol/$(NGX_PAGESPEED_VERSION).tar.gz && \
tar -xzvf $(NGX_PAGESPEED_VERSION).tar.gz) || \
echo "You need to run 'make fetch_dep' first to download ngx_pagespeed."
help:
@echo "This is a Makefile to automatize compiling nginx from source.\n"
@echo "Run 'make fetch' to fetch the core and addons."
@echo "Run 'make build' to configure and compile nginx. If you want to pass options to ./configure you can do this with 'NGX_CONFIGURE=options... make build' on the commmand line."
@echo "'make install' will install it system wide (needs root privileges)."
@echo "If you are on GNU/Debian, you can run 'make prepare' to install some needed libraries."
|