CentOS 自行编译 nginx + 1.0.2x OpenSSL RPM 包安装来支持 HTTP/2

CentOS 自行编译 nginx + 1.0.2x OpenSSL RPM 包安装来支持 HTTP/2

一键构建 rpm 包脚本

yum -y groupinstall 'Development Tools'
yum -y install wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel

OPENSSL="openssl-1.0.2j" # 这里填写 OpenSSL 版本
NGINX="nginx-1.11.6-1" # 这里填写 Nginx 版本

mkdir -p /opt/lib
wget https://www.openssl.org/source/$OPENSSL.tar.gz -O /opt/lib/$OPENSSL.tar.gz
tar -zxvf /opt/lib/$OPENSSL.tar.gz -C /opt/lib

rpm -ivh http://nginx.org/packages/mainline/centos/7/SRPMS/$NGINX.el7.ngx.src.rpm
sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/$OPENSSL|g" /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
rpm -Uvh /root/rpmbuild/RPMS/x86_64/$NGINX.el7.centos.ngx.x86_64.rpm

把这个脚本内容随便找个地方写入到 .sh 文件内容
例子 /root/build_ng.sh 然后执行 chmod +x build_ng.sh 给脚本添加执行权限
接着 ./build_ng.sh 就开始构建 nginx rpm 包了,
编译完会自动安装编译好的 rpm
所以在编译之前建议之前有用 yum install nginx
安装的官方源用命令 yum -y remove nginx 卸载掉(注意备份你的 conf 文件)。

如果你比较懒,可以到这里获取编译好的 nginx rpm
https://mirrors.loacg.com/system/linux/centos/rpm/nginx/

附录:
* CentOS 升级 OpenSSL
* Nginx 官方 SRPMS(可以在这里看到你需要的源包)