首先说明,Nginx需要1.9.5版本以上,OpenSSL至少需要OpenSSL 1.0.2版本。
下面升级开始升级
1. 下载解压 openssl-1.0.2h
wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz tar xf openssl-1.0.2h.tar.gz
2. 下载解压 Nginx 1.10.0
http://nginx.org/download/nginx-1.10.0.tar.gz tar xf nginx-1.10.0.tar.gz cd nginx-1.10.0
升级先备份之前的Nginx
mv /usr/local/nginx /usr/local/nginx_back
接下来就可以升级Nginx了
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-pcre --with-http_v2_module --with-http_gunzip_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2h
注意oepnssl源码的路径以及必须启动http_v2和ssl模块,现阶段http2只支持https加密的网站
3. 配置 Nginx
把以前老版本Nginx中conf目录的下的nginx.conf拷贝到新安装的Nginx中的conf目录下,同时如果有vhosts目录的话也拷贝过去。
重点是vhosts中的.conf文件
内容如下:
server
{
listen 80;
server_name laowang.me www.laowang.me;
if ($host != 'laowang.me') {
rewrite ^/(.*)$ https://laowang.me/$1 permanent;
}
rewrite /^(.*) https://$server_name/$1 permanent;
index index.html index.htm index.php;
root /wangzhangenmulu;
access_log logs/laowang.log man;
error_log logs/laowang_err.log;
error_page 404 /404/index.php;
listen 443 ssl http2;
ssl on;
ssl_certificate /etc/fullchain.pem;
ssl_certificate_key /etc/privkey.pem;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header Strict-Transport-Security max-age=63072000;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
以上只是贴出了最重要的一段,至于网站源码存放路径和ssl证书存放路径都需要更改为相应的内容。
ssl证书可以用:Let's Encrypt 免费的
4. 测试HTTP2
chrome可以在地址栏输入:chrome://net-internals/选择HTTP/2 看 Negotiated Protocol 是不是h2
chrome开发者工具也可以看
还有这个网站:https://tools.keycdn.com/http2-test
以及测试服务器安全程度:https://www.ssllabs.com/ 应该是A+的水准。
Leave a Reply
You must be logged in to post a comment.