接着回到nginx-build目录,然后执行下面命令编译:
cd nginx-1.9.14sudo make && make install
如果没有报错那就编译成功,在终端试试 sudo nginx 启动,然后打开 能看到欢迎页,然后在终端输入 nginx -v 看到 nginx version: nginx/1.9.14。
生成 SSL/TLS 安全证书要配置 HTTP 2.0 就需要启动 HTTPS,那就需要生成一个 SSL/TLS 证书,而 OpenSSL 正好可以做这件事情,买不起证书但自己造一个来临时用还是可以的,直接执行下面命令:
# 切换到nginx的根目录(我这里是/usr/local/nginx,请根据上一步编译时候指定的--prefix对应修改)cd /usr/local/nginx
cd conf
# 利用openssl命令生成公钥跟密钥
openssl genrsa -des3 -passout pass:x -out cert.pass.key 2048
openssl rsa -passin pass:x -in cert.pass.key -out cert.key
openssl req -new -key cert.key -out cert.csr
openssl x509 -req -days 365 -in cert.csr -signkey server.key -out cert.crt
# 将crt跟key合并生成pem文件
cat server.crt server.key > server.pem
# 删除掉我们不需要用到的文件
rm -rf cert.crt cert.csr
修改Nginx配置
离成功之后一步之遥了,接下来就是最重要的一步,配置Nginx支持HTTP 2.0,修改Nginx配置文件/usr/local/nginx/conf/nginx.conf:
1.将所有HTTP请求重定向到HTTPS请求
location / {return 301 https://$host$remote_port$request_uri;
}
2.配置HTTPS server
server {listen 443 ssl http2 default_server;
server_name localhost;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 我用原始的下面这段启动报错了,所以注释掉改用了后面那段
#ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers 'CHACHA20:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;';
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
可以注意到上面 HTTPS 的配置比之前多了一个 http2 ,这就是 ngx_http_v2_module 模块,若没有安装该模块启动一样会报错。
3.重启服务器
配置完成之后,重新启动服务器即可:
sudo nginx -s reload4.预览
打开 ,自动跳转到 https://localhost ,Done!
一点思考虽然 HTTP 2.0 也已经不算是非常新的东西,要普及确实也需要很长一段时间,希望不久将来有钱买个服务器部署到自己网站上。
只有动手实践才知道看起来简单的东西实际上还是会碰到很多坑,anyway,一直在成长的路上~
下面关于Nginx的文章您也可能喜欢,不妨参考下: