Compile nginx-1.13.10 to support http/2 and Server Push on CentOS 7
0 make sure openssl>=1.0.2
openssl version
1 Download nginx-1.13.10
wget http://nginx.org/download/nginx-1.13.10.tar.gz
tar zxf nginx-1.13.10.tar.gz
cd nginx-1.13.10
2 prepare gcc and dev tools
yum groupinstall "Development Tools"
yum install pcre* openssl* gd-devel* \
zlib-devel pcre-devel libpcre3 \
libpcre3-dev zlib1g-dev unzip git
3 prepare config module
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module \
--with-http_v2_module --with-http_gzip_static_module \
--with-http_sub_module
the output:
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
4 compile
make
5 install
make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
6 nginx config
server {
listen 443 ssl http2 default_server;
server_name _;
root /usr/local/nginx/html;
ssl_certificate "/usr/local/nginx/conf/server.crt";
ssl_certificate_key "/usr/local/nginx/conf/server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /index.html {
http2_push_preload on;
http2_push /image.jpg;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
7 prepare cert file
server.crt/server.key
8 reload nginx
nginx -t
nginx -s reload
9 Verify in chrome
Open chrome
and input
chrome://net-internals/#http2
可以看到对应站点的http/2的session
Reference
https://www.nginx.com/blog/nginx-1-13-9-http2-server-push
Back to Table of Contents
Disclaimer
- License under
CC BY-NC 4.0
- Copyright issue feedback
me#imzye.com
, replace # with @ - Not all the commands and scripts are tested in production environment, use at your own risk
- No personal information is collected.
Feedback