热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HTTP2.0的实现

刚刚把全站上了HTTPS,部署了CDN。在部署CDN的时候发现有个HTTP2.0支持的选项,于是开始
HTTP2.0的实现

前言

刚刚把全站上了HTTPS,部署了CDN。在部署CDN的时候发现有个HTTP2.0支持的选项,于是开始升级HTTP2.0

安装Verynginx

这是一个开源的nginx扩展项目,为nginx增加了很多有用的功能,自带了一些防火墙措施,而且提供了相当友好的控制界面

安装步骤:

#更新一下系统 
apt update
apt upgrade && apt dist-upgrade

#安装依赖环境 
apt install git wget perl make build-essential procps libreadline-dev libncurses5-dev libpcre3-dev libssl-dev 

#添加nginx用户组 
groupadd -r nginx && useradd -r -g nginx nginx 

#下载Verynginx 
git clone https://github.com/alexazhou/VeryNginx.git 

#安装Verynginx 
cd VeryNginx 
python install.py install

启动Verynginx

#启动
sudo /opt/verynginx/openresty/nginx/sbin/nginx

#重载配置
sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload

申请证书

  1. 申请的腾讯云的 免费SSL证书   –>    传送门
  2. 如果有域名直接申请即可,没有域名,腾讯云 .club域名首年1元   –>    传送门
  3. 申请证书选择  免费版DVSSL证书
  4. 填写相关信息即可,如果是腾讯云够买的域名会直接发放证书,如果是其他服务商购买的需要自行添加 TXT记录 进行域名认证

部署证书

  1. 进入SSL证书管理,下载相应的证书
  2. 解压zip压缩包,将nginx目录下的 XXXX.crtXXXX.key 上传到服务器上,假设目录为 /path/to/ssl

修改Verynginx配置文件

1、编辑 /opt/verynginx/openresty/nginx/conf/nginx.conf

2、添加一个include语句

include /opt/verynginx/verynginx/nginx_conf/in_http_block.conf;
include /opt/verynginx/verynginx/nginx_conf/sites/*.conf;    #添加此行代码
server {
   listen       80;
        
   #this line shoud be include in every server block
   include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;
   location = / {
            root   html;
            index  index.html index.htm;
   }
}

3、 创建文件夹 mkdir  /opt/verynginx/verynginx/nginx_conf/sites

4、 进入该文件夹并新建 XXX.conf cd /opt/verynginx/verynginx/nginx_conf/sites && touch XXXX.conf

5、 编辑  XXXX.conf 文件内容如下:

server {
        listen 443 ssl http2  fastopen=3 reuseport;     #开启HTTP2.0支持并启用端口复用
        server_name XXXX;                               #你的域名

    ssl on;
        ssl_certificate     /path/to/ssl/XXXX.crt;      #证书crt文件的路径
    ssl_certificate_key /path/to/ssl/XXXX.key;      #证书key文件的路径

        
    ssl_stapling on;                                #开启OCSP Stapling
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;            
    resolver_timeout 10s;
        ssl_buffer_size 8k;
        ssl_session_tickets on;
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 10m;

        #设置加密协议,TLSv1协议将于2019年被废弃,如果不用IE6老古董建议不启用
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;            
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
        
        #开启HSTS务必保证所有子域名都已经配置好HTTPS,否则删除掉includeSubdomains
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" always;

        #防止点击劫持
        add_header X-Frame-Options SAMEORIGIN always;
        #防止XSS攻击
        add_header X-XSS-Protection "1; mode=block" always;
        #防止MIME探测
        add_header X-Content-Type-Options nosniff;

        #this line shoud be include in every server block
        include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf;

        root /path/to/website;      #网站根目录
        location / {
             #与普通nginx配置相同
        }
}

重启Verynginx

#重载配置
sudo /opt/verynginx/openresty/nginx/sbin/nginx -s reload
HTTP2.0的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 抖音服务器带宽有多大,才能供上亿人同时刷?
    最近看到一个有意思的提问:抖音服务器带宽有多大,为什么能够供那么多人同时刷?今天来给大家科普一下。 ... [详细]
  • 部署Maven环境
    JDK:在maven3.3以上的版本需要JDK版本1.7,内存:没有最低限制。磁盘:1G可用磁盘空间。操作系统: ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
author-avatar
donglin204
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有