How to compile nginx-1.13.10 to support http/2 on CentOS 7
Introduction
Nginx is a free, open-source, high-performance web server used to serve dynamic HTTP content. HTTP/2 is a protocol that provides significant improvements over HTTP/1.1, such as faster page load times, lower latency, and reduced bandwidth usage. In this blog post, we’ll go over the steps to compile Nginx-1.13.10 with HTTP/2 support on CentOS 7.
Installing Prerequisites
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
You can see the http/2 session for the corresponding site.
Conclusion
In this blog post, we went over the steps to compile Nginx-1.13.10 with HTTP/2 support on CentOS 7. We also covered how to configure Nginx to use HTTP/2. By following these steps, you can take advantage of the benefits that HTTP/2 provides over HTTP/1.1.
Reference
https://www.nginx.com/blog/nginx-1-13-9-http2-server-push
Leave a message
Disclaimer
- Welcome to visit the knowledge base of SRE and DevOps!
- License under CC BY-NC 4.0
- Made with Material for MkDocs and improve writing by generative AI tools
- Copyright issue feedback me#imzye.com, replace # with @