Nginx编译安装(支持HTTP2扩展)

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

安装扩展

安装makegcc

yum install make gcc -y

安装pcre, 这是为了支持rewrite功能

yum install pcre pcre-devel -y

安装openssl(确保openssl-1.0.2+)

yum install openssl openssl-devel -y

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

安装nginx

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

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

cd nginx-1.16.1

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

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

使用

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

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

注意点

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

# 千万不要重启, 切记!
nginx -s reload
展示评论