【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP/2 不仅速度比目前常见的 HTTP/1.1 更快,而且更加安全。

前言

其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP/2 不仅速度比目前常见的 HTTP/1.1 更快,而且更加安全。 不过,也正是因为安全(依赖 HTTPS)所以 HTTP/2 的设置略为复杂导致很多网站都没有用上。

这里就将为大家介绍如何 10分钟 轻松设置出 HTTP/2 网站。

介绍

HTTP 2.0 即超文本传输协议 2.0,是下一代 HTTP 协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。

HTTP/2 协议是从 SPDY 演变而来,SPDY 已经完成了使命并很快就会退出历史舞台(例如 Chrome 将在「2016 年初结束对 SPDY 的支持」;Nginx、Apache 也已经全面支持 HTTP/2 ,并也不再支持 SPDY)。

一般的大家把 HTTP2 简称为 h2,尽管有些朋友可能不怎么愿意,但是这个简称已经默认化了,特别是体现在浏览器对 HTTP2 都是这个简写的。

要求 & 收获

需要使用到的产品:

  1. ECS/轻量应用服务器(安装任意 Linux 发行版镜像)
  2. SSL 证书 (Let's Encrypt 证书 或者 阿里云免费提供的赛门铁克证书

通过本文你将讲学到:

  1. 设置 Nginx 的 HTTPS 操作
  2. 设置 Nginx 的 HTTP/2 操作
  3. 拥有一个 HTTP/2 网站

如果你是大学生且还没有 ECS,可以使用:

云翼计划

学生用户可以在阿里云官网上进行学生认证后购买一定配置的ECS,仅需9.9元每月,学生用户无需担心花费过多用在服务器的问题。

学生用户在经过学生认证过后就可以在相关网址进行购买,网址为:

https://promotion.aliyun.com/ntms/campus2017.html

买好了服务器就可以去刚刚注册好的账号管理里的管理控制台去查看服务器以及它的一些配置。

如果你有较好的芝麻信用分记录且还没有 ECS,可以使用:

阿里云免费套餐:

个人新用户可以在 云栖社区聚能聊 获取免费产品邀请码(还有其他丰厚礼品),免费体验 7 款阿里云明星产品六个月的使用资格:https://free.aliyun.com/

企业新用户完成企业认证可以可以费体验 10 款阿里云明星产品六个月的使用资格:https://free.aliyun.com/

教程

一、 参考 【云计算的1024种玩法】手把手教你如何编译升级 OpenResty 编译 OpenResty 软件作为 Web 服务器软件,教程还是比较简单的。

二、 首先申请 SSL 证书,HTTPS 依赖于 SSL 证书,可以通过 (【云计算的1024种玩法】使用阿里云解析 + RAM 快速签署 Let's Encrypt 证书 或者 阿里云免费提供的赛门铁克证书) 这两个教程来申请证书。 预计耗时 8 分钟。

三、 做完准备工作,我们就要开始为虚拟主机设置 HTTPS + HTTP/2 了!

这里我们以 www.mf8.biz 为例,下面是 HTTPS 虚拟主机配置文件:

server {

  ##开启 HTTPS 和 HTTP/2
  listen 443 ssl http2;

  ssl_certificate /usr/local/openresty/nginx/conf/ssl/www.mf8.biz.crt; #改为SSL证书绝对路径位置
  ssl_certificate_key /usr/local/openresty/nginx/conf/ssl/www.mf8.biz.key; #改为SSL密钥绝对路径位置

  ##SSL增强安全设置部分
  add_header Strict-Transport-Security max-age=15768000; #HSTS设置
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  ssl_stapling on;
  ssl_stapling_verify on;
  
  ### 下面的部分根据网站需求为异,只要上面的内容有基本上都能兼容各种网站的 HTTPS 设置

  server_name www.mf8.biz mf8.biz; # 改为您自己的域名
  access_log off;
  index index.html index.htm index.php;
  root /data/wwwroot/mf8; # 改为您自己的网站目录位置

  ##PHP
  location ~ [^/]\.php(/|$) {
      fastcgi_pass unix:/run/php/php7.1-fpm.sock; ## 改为您自己的 php-fpm 版本号
      fastcgi_index index.php;
      include fastcgi.conf;
      fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
    }

  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }
}

将配置文件中的所有带 # 的注释中所在的行,改为您自己的域名、文件路径等内容。 然后保存到 /usr/local/openresty/nginx/vhost/您的域名.conf 文件中。

通过:

nginx -t

命令查看配置是否正确,如果有错误就根据提示文件所在的行修改错误内容。没有错误提示的话,重启即可:

nginx -s reload

预计耗时 2 分钟。

跑分

然后我们可以到 https://www.ssllabs.com/index.html 可以对进行网站 HTTPS 的跑分测试,并检查 HTTP/2 对各环境的兼容性,根据我提供的配置文件这么一番下来肯定是 A+!

image

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
IIS上实现网站朝https://www的自动跳转
我们在做网站时时常有网站朝https://www的自动跳转的需求,以便在不输入www.子域名时也可以自动跳转到我们的当前站点,本文将介绍实现网站朝https://www的自动跳转的操作。
36 0
IIS上实现网站朝https://www的自动跳转
|
5天前
|
应用服务中间件 nginx
百度搜索:蓝易云【nginx记录分析网站响应慢的请求(ngx_http_log_request_speed)】
需要注意的是,使用自定义的Nginx模块需要对Nginx的编译和配置有一定的了解。如果对Nginx和模块的配置不太熟悉,建议先仔细阅读相关文档和教程,确保操作正确。此外,模块的稳定性和兼容性也需要进行一定的测试和验证。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
15 0
|
2月前
|
API 数据安全/隐私保护
如何使用Postman 测试Https 网站?
如何使用Postman 测试Https 网站?
|
2月前
|
安全 JavaScript API
深入理解 HTTP 和 HTTPS:提升你的网站安全性(下)
深入理解 HTTP 和 HTTPS:提升你的网站安全性(下)
深入理解 HTTP 和 HTTPS:提升你的网站安全性(下)
|
2月前
|
缓存 安全 网络安全
深入理解 HTTP 和 HTTPS:提升你的网站安全性(上)
深入理解 HTTP 和 HTTPS:提升你的网站安全性(上)
深入理解 HTTP 和 HTTPS:提升你的网站安全性(上)
|
2月前
|
缓存 前端开发 应用服务中间件
https证书已经部署到宝塔,但访问网站还显示不生效问题解决
https证书已经部署到宝塔,但访问网站还显示不生效问题解决
33 0
|
2月前
|
Linux
Linux/CentOS设置全局代理(http)
Linux/CentOS设置全局代理(http)
52 0
|
2月前
|
JavaScript Java Serverless
函数计算中,这里是用的curl的方式,如何改用http的post方式请求?还有如何设置oss打包的zip的保存目录?
函数计算中,这里是用的curl的方式,如何改用http的post方式请求?还有如何设置oss打包的zip的保存目录?
149 0
|
3月前
|
安全 测试技术 API
Selenium框架添加CONNECT以抓取https网站
Selenium框架添加CONNECT以抓取https网站
|
3月前
|
前端开发 JavaScript 应用服务中间件
个人博客网站如何实现https重定向(301)到http
对于个人网站站注册比较少的,服务器配置不是很好的,没必要https,https跳转到http是要时间的,会影响网站打开的速度。免费的https每年都要更换。
34 2

相关产品

  • 云迁移中心