美文网首页
用最快的速度搭建一个 HTTP2 网站

用最快的速度搭建一个 HTTP2 网站

作者: 长脖子树 | 来源:发表于2019-05-15 20:28 被阅读0次

    前言

    啊啊啊, 前些天刚刚写了篇 如何搭建一个博客网站, 结果过了两天, 我的网站就崩了… 我#?!@#??? 那天 Google Cloud 的服务器突然宕机了 The zone xxx does not have enough resources available. google 了老半天, 啥都没用, 说是 GCP 的bug. 都是几年前的回答, 一点用都没. 关键是我还没备份, 妈耶, 我的数据啊!! 我在想要不就等它自己恢复吧, 到时候我把数据快照一下, 也不怕之后再宕机了. 结果, 我等啊等等啊等, 一天, 两天…一星期. 不行了, 自己重新搭吧.

    100% 速度

    搭建

    重新买了台阿里云的国外服务器 -.- 开始~

    Nginx 安装

    依赖安装

    # GCC编译器 
    yum install -y gcc
    
    # Nginx的HTTP模块要用它来解析正则表达式。
    yum install -y pcre pcre-devel 
    
    # gzip格式的压缩会用到它。
    yum install -y zlib zlib-devel
    
    # OpenSSL库
    yum install -y openssl openssl-devel
    

    Nginx模块安装

    根据你自己的情况, 如果你是第一次安装nginx

    wget http://nginx.org/download/nginx-1.14.1.tar.gz
    tar -zxvf nginx-1.14.1.tar.gz
    cd nginx-1.14.1
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
    make
    make install
    

    如果想要升级之前的nginx, 重新安装 ssl, http2 模块

    wget http://nginx.org/download/nginx-1.14.1.tar.gz
    tar -zxvf nginx-1.14.1.tar.gz
    cd nginx-1.14.1
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
    make
    # 备份
    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    cp ./objs/nginx /usr/local/nginx/sbin/
    ## 查看当前nginx 版本信息及编译选项
    /usr/local/nginx/sbin/nginx -V
    rm /usr/bin/nginx
    # 加入常用命令
    ln /usr/local/nginx/sbin/nginx /usr/bin/nginx
    

    配置

    1. /usr/local/nginx/conf/nginx.conf 中加入 include /usr/local/nginx/conf/conf.d/*.conf; , 加入位置如下, 只要加入这行就行, 用# 的注释我这边删除了
    # 参考
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        include /usr/local/nginx/conf/conf.d/*.conf;
        
        server {
            listen       80;
    
    # .....略
    
    1. /usr/local/nginx/conf/ 目录下建立文件夹 conf.d, 新建两个文件 xxx.443.conf ,xxx.80.conf, 名字随便取.
    # xxx.443.conf 的内容如下, 域名设定成自己的哦
    server {
            listen  443 ssl http2;
            server_name giraffetree.me;
            
            # ssl 证书
            ssl_certificate      /usr/local/nginx/conf/conf.d/cert/giraffetree.me.pem;
            ssl_certificate_key  /usr/local/nginx/conf/conf.d/cert/giraffetree.me.key;
        ssl_session_timeout  5m;
        # 下面这行不写会导致浏览器报出 ERR_SSL_PROTOCOL_ERROR 错误
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        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';
        ssl_prefer_server_ciphers  on;  
    
        location / {
            root /root/data/web;
            index index.html;
        }
    }
    
    # xxx.80.conf 的内容如下, 域名设定成自己的哦
    server {
        listen 80;
        server_name giraffetree.me;
        add_header Strict-Transport-Security max-age=600;
        return 307 https://giraffetree.me$request_uri;
    }
    
    # /usr/local/nginx/conf/conf.d 下的 目录结构
    ./
    ├── cert
    │   ├── giraffetree.me.key
    │   └── giraffetree.me.pem
    ├── giraffetree.me.443.conf
    └── giraffetree.me.80.conf
    
    

    检查配置, 并启动

    # 检查配置有没有问题
    nginx -t
    # 第一次启动
    nginx
    # 重新加载配置文件, 重启
    nginx -s reload
    

    访问如: giraffetree.me

    检查 http2 是否启动

    下载 chrome 的扩展程序 HTTP/2 and SPDY indicator, 会有一个闪电标志, 亮了就代表配置成功啦!

    最后

    创建快照策略, 选择磁盘 . 选择珍爱生命, 每天备份 -.-

    =.= 有什么疑问欢迎提问

    邮箱: giraffetree1@gmail.com

    github: github.com/giraffe-tree

    网址 : giraffetree.me

    相关文章

      网友评论

          本文标题:用最快的速度搭建一个 HTTP2 网站

          本文链接:https://www.haomeiwen.com/subject/rrnmaqtx.html