Nginx编译安装(支持HTTP/2扩展)

一般情况我们通过yum安装就行了, 但有些时候, 我们想使用最新的nginx特性, 或者我们希望使用新的扩展, 比如说支持HTTP/2, 这个时候就需要编译安装

一. 安装扩展

1. 安装 pcre, 这是为了支持 rewrite 功能
yum install pcre pcre-devel -y
2. 安装openssl
yum install openssl openssl-devel -y

如果希望支持HTTP/2, 就必须使用openssl 1.0.2以上的版本, 一般系统yum源都没有这么高的版本, 所以需要从官网下载源码安装

cd /opt
# 下载
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
# 解压
tar -zxvf openssl-1.0.2k.tar.gz
3. 安装gzip
yum install zlib zlib-devel -y

当然, 如果大家不想安通过yum安装, 也可以自行编译安装

二. 安装nginx

将nginx的压缩包放在 /opt 目录下, 这个根据个人的习惯处理

cd /opt
# 下载
wget http://nginx.org/download/nginx-1.11.12.tar.gz
# 解压
tar -zxvf nginx-1.11.12.tar.gz

cd nginx-1.11.12

./configure --prefix=/usr/local/nginx \  
--with-http_stub_status_module \
--with-pcre \
--with-stream \
--with-http_v2_module \
--with-http_ssl_module \
--with-openssl=/opt/openssl-1.0.2k

make && make install

其中几个参数的含义

--with-http_stub_status_module  支持nginx状态查询
--with-pcre                     支持rewrite重写功能
--with-stream                   支持TCP协议
--with-http_ssl_module          支持https
--with-http_v2_module           支持http2
--with-openssl                  指定openssl源码位置

三. 使用

# 添加软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

# 启动  
nginx
# 关闭  
nginx -s stop
# 重启
nginx -s reload

四. 注意点

  1. 如果openssl版本在1.0.2之前, 就算能编译成功也不支持HTTP/2
  1. 如果最新版本的openssl, 比如说版本1.1.0, 因为由于去掉了以前的一些旧方法, 会编译不通过, 不知道后续的nginx会不会修复此类问题
  2. nginx版本必须是1.9.5之后, 否则不支持HTTP/2扩展
  3. 如果之前有安装了nginx, 重新编译扩展之后, 需要按下面方法使之生效

一定要这样

nginx -s stop
nginx

千万不要重启, 切记!

nginx -s reload

你可能感兴趣的:(Nginx编译安装(支持HTTP/2扩展))