Last active
March 1, 2020 18:17
-
-
Save farvisun/da8e3a659fc82c1e068bf071e8eb8ae5 to your computer and use it in GitHub Desktop.
Compile nginx with brotli,Pagespeed and vts module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install dependencies | |
# | |
# * checkinstall: package the .deb | |
# * libpcre3, libpcre3-dev: required for HTTP rewrite module | |
# * zlib1g zlib1g-dbg zlib1g-dev: required for HTTP gzip module | |
apt-get install build-essential \ | |
zlib1g zlib1g-dbg zlib1g-dev \ | |
libpcre3 libpcre3-dev libssl-dev libxslt1-dev libxml2-dev libgd2-xpm-dev libgeoip-dev libgoogle-perftools-dev libperl-dev \ | |
unzip uuid-dev checkinstall | |
mkdir -p /ntmp/sources/ | |
# Compile against OpenSSL to enable NPN | |
cd /ntmp/sources && \ | |
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz && \ | |
tar -xzvf openssl-1.1.1a.tar.gz | |
cd /ntmp/sources && \ | |
git clone git://github.com/vozlt/nginx-module-vts.git && \ | |
# Download PageSpeed | |
cd /ntmp/sources && \ | |
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.13.35.2-stable.zip && \ | |
unzip v1.13.35.2-stable.zip && \ | |
cd incubator-pagespeed-ngx-1.13.35.2-stable && \ | |
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz && \ | |
tar -xzvf 1.13.35.2-x64.tar.gz | |
cd /ntmp/sources && \ | |
wget https://github.com/nbs-system/naxsi/archive/untagged-afabfc163946baa8036f.tar.gz && \ | |
tar -xzvf untagged-afabfc163946baa8036f.tar.gz && \ | |
mv naxsi-untagged-afabfc163946baa8036f naxi-0.56 | |
# Get the Nginx source. | |
# | |
# Best to get the latest mainline release. Of course, your mileage may | |
# vary depending on future changes | |
cd /ntmp/sources/ && \ | |
wget http://nginx.org/download/nginx-1.14.2.tar.gz && \ | |
tar zxf nginx-1.14.2.tar.gz | |
cd /ntmp/sources && \ | |
git clone https://github.com/google/ngx_brotli.git && \ | |
cd ngx_brotli && \ | |
git submodule update --init --recursive | |
# Configure nginx. | |
# | |
# This is based on the default package in Debian. Additional flags have | |
# been added: | |
# | |
# * --with-debug: adds helpful logs for debugging | |
# * --with-openssl=$HOME/sources/openssl-1.0.1e: compile against newer version | |
# of openssl | |
# * --with-http_spdy_module: include the SPDY module | |
cd /ntmp/sources/nginx-1.14.2 && \ | |
./configure --prefix=/etc/nginx \ | |
--sbin-path=/usr/sbin/nginx \ | |
--conf-path=/etc/nginx/nginx.conf \ | |
--error-log-path=/var/log/nginx/error.log \ | |
--http-log-path=/var/log/nginx/access.log \ | |
--pid-path=/var/run/nginx.pid \ | |
--lock-path=/var/run/nginx.lock \ | |
--http-client-body-temp-path=/var/cache/nginx/client_temp \ | |
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \ | |
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ | |
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ | |
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \ | |
--user=www-data \ | |
--group=www-data \ | |
--with-http_ssl_module \ | |
--with-http_v2_module \ | |
--with-http_realip_module \ | |
--with-http_addition_module \ | |
--with-http_sub_module \ | |
--with-http_dav_module \ | |
--with-http_flv_module \ | |
--with-http_mp4_module \ | |
--with-http_gunzip_module \ | |
--with-http_gzip_static_module \ | |
--with-http_random_index_module \ | |
--with-http_secure_link_module \ | |
--with-http_stub_status_module \ | |
--with-mail \ | |
--with-mail_ssl_module \ | |
--with-stream \ | |
--with-stream_realip_module \ | |
--with-stream_ssl_module \ | |
--with-stream_ssl_preread_module \ | |
--with-file-aio \ | |
--with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' \ | |
--with-ld-opt='-Wl,-z,relro -Wl,--as-needed' \ | |
--with-openssl=/ntmp/sources/openssl-1.1.1a \ | |
--add-module=/ntmp/sources/incubator-pagespeed-ngx-1.13.35.2-stable \ | |
--add-module=/ntmp/sources/nginx-module-vts \ | |
--add-module=/ntmp/sources/ngx_brotli \ | |
--add-module=/ntmp/sources/naxi-0.56/naxsi_src | |
# Make the package. | |
cd /ntmp/sources/nginx-1.14.2 && \ | |
make | |
# Create a .deb package. | |
# | |
# Instead of running `make install`, create a .deb and install from there. This | |
# allows you to easily uninstall the package if there are issues. | |
cd /ntmp/sources/nginx-1.14.2 && \ | |
checkinstall --install=no -y | |
# Install the package. | |
#dpkg -i nginx_1.5.12-1_amd64.deb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment