Windless
订阅/Feed
稗田千秋(i@wind.moe)

小站全面启用HTTP/2

稗田千秋
Feb.29 2016 daily

半夜无眠,遂将使用许久的 Apache 更换为 Nginx,编译到最新版本以支持HTTP/2,记下来以备迁移之需。

cd ~

# 准备编译 Nginx
wget http://nginx.org/download/nginx-1.11.13.tar.gz && tar xf nginx-1.11.13.tar.gz

# 提供ssl功能
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz && tar xf openssl-1.1.0e.tar.gz

# 提供Gzip功能
wget http://zlib.net/zlib-1.2.11.tar.gz && tar xf zlib-1.2.11.tar.gz

# 删除无用压缩包
rm *.tar.gz

然后进入解压后的nginx文件夹,开始编译

cd nginx-1.11.13
./configure \n--prefix=/usr/share/nginx \n--sbin-path=/usr/sbin/nginx \n--conf-path=/etc/nginx/nginx.conf \n--http-log-path=/var/log/nginx/access.log \n--error-log-path=/var/log/nginx/error.log \n--lock-path=/var/lock/nginx.lock \n--pid-path=/run/nginx.pid \n--http-client-body-temp-path=/var/lib/nginx/body \n--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \n--http-proxy-temp-path=/var/lib/nginx/proxy \n--http-scgi-temp-path=/var/lib/nginx/scgi \n--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \n--with-debug \n--with-pcre-jit \n--with-ipv6 \n--with-http_ssl_module \n--with-http_stub_status_module \n--with-http_realip_module \n--with-http_addition_module \n--with-http_dav_module \n--with-http_geoip_module \n--with-http_gzip_static_module \n--with-http_v2_module \n--with-http_sub_module \n--with-http_xslt_module \n--with-mail \n--with-mail_ssl_module \n--with-zlib=../zlib-1.2.11 \n--with-openssl=../openssl-1.1.0e

执行完毕后运行 make 和 make install (全新安装)/ make upgrade (覆盖安装),还可以使用 -j2 在双核服务器上提高编译效率

然后修改 Nginx 配置文件,增加一个http2参数如下

server {
     listen 443 ssl http2;
     ...
 }

最后执行 nginx -s reload 即可使用HTTP/2

Update: 编译时可能遇到的错误

  • ./configure: error: the HTTP rewrite module requires the PCRE library. 缺少PCRE模块 使用 sudo apt-get install libpcre3 libpcre3-dev
  • ./configure: error: the HTTP XSLT module requires the libxml2/libxslt libraries. 缺少XSLT模块 使用 sudo apt-get install libxml2 libxml2-dev libxslt-dev
  • ./configure: error: the GeoIP module requires the GeoIP library. 缺少GeoIP模块 使用 sudo apt-get install geoip-database libgeoip-dev

Update: ciphers的推荐配置

ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
引用

--END--
文章创建于 2016-02-29 14:30:11,最后更新 2016-02-29 14:30:11
Comment
尝试加载Disqus评论, 失败则会使用基础模式.
    • play_arrow

    About this site

    version:1.02 Alpha
    博客主题: Lime
    联系方式: i@wind.moe
    写作语言: zh_CN & en_US
    博客遵循 CC BY-NC-SA 4.0许可进行创作

    此外,本博客会基于访客的Request Headers记录部分匿名数据用于统计(Logger的源码见Github),包含Referer, User-Agent & IP Address.个人绝不会主动将数据泄露给第三方