• nginx服务器配置http/2


    nginx服务器配置http/2



    在这里插入图片描述

    1.安装nginx

    如果你没有安装nginx,可以参考这里:nginx教程


    2.ssl证书

    如果你没有ssl证书,需要先创建一个ssl证书,如果你已经有了ssl证书,可以跳过这一步。


    2.1 创建ssl证书

    这里创建的ssl证书是自签名的,浏览器会提示不安全,如果你想要安全的证书,可以去购买证书。

    openssl genrsa -out private.key 2048
    
    • 1

    含义:生成一个2048位的私钥,保存在private.key文件中。

    openssl req -new -key private.key -out csr.pem
    
    • 1

    含义:生成一个证书签名请求,其中包含了公钥,保存在csr.pem文件中。

    当你执行这一步,这里会出现一些问题,需要填写一些信息,大致如下:

    Country Name (2 letter code) [XX]: 国家代码,如CN。
    State or Province Name (full name) []: 州或省份名称。
    Locality Name (eg, city) [Default City]: 城市名。
    Organization Name (eg, company) [Default Company Ltd]: 组织名称,如公司名。
    Organizational Unit Name (eg, section) []: 组织单位名称,如部门。
    Common Name (eg, your name or your server's hostname) []: 常用名,如你的名字或服务器的主机名。
    Email Address []: 电子邮件地址。
    A challenge password []: 设置证书请求的密码。
    An optional company name []: 可选的公司名称。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    其中比较重要的是Common Name,这里填写的是你的域名,如:www.baidu.com。

    openssl x509 -req -days 365 -in csr.pem -signkey private.key -out private.crt
    
    • 1

    含义:生成一个证书,有效期为365天,保存在private.crt文件中。


    3.配置nginx

    3.1 配置http/2

    
    # ...... 省略其他配置
    
    http {
    
        # ...... 省略其他配置
    
        server {
            listen 443 ssl;
    
            http2 on;
    
            ssl_certificate private.crt;
            ssl_certificate_key private.key;
    
            location / {
                root html;
                index index.html index.htm;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    如果你是初学者,看到省略的配置请不要慌张,你只需要在http中添加server配置即可。

    注意:http2需要nginx版本大于1.9.5

    注意:切记ssl_certificatessl_certificate_key请填写你自己的证书位置,或者将你创建好的证书放在当前目录下。如果你不知道你的证书位置,可以执行find / -name private.crt查找。

    注意:location部分也是如此,你需要将root改为你的项目根目录。root html的意思是将html目录作为根目录,如果你的项目根目录是/home/www,那么你需要将root html改为root /home/www。比如你配置的是root /home/www;index index.html index.htm;,那么当你访问https://localhost时,nginx会自动寻找/home/www/index.html或者/home/www/index.htm文件,如果找到了,就会返回给浏览器,如果没有找到,就会返回404。

    location / {
        root html;
        index index.html index.htm;
    }
    
    • 1
    • 2
    • 3
    • 4

    这个配置的意思是返回当前目录下的html文件夹中的index.html或者index.htm文件。

    假设我们的index.html文件内容如下:

    <h1>Hello,Nginx HTTP/2h1>
    
    • 1

    4.保存配置文件

    • 点击 esc
    • 输入 :wq

    5.重启nginx

    nginx -s reload
    
    • 1

    这一步需要 root权限,以 linux 为例,如果你是 root用户,那么直接执行上面的命令即可,如果你不是 root用户,那么需要在命令前加 sudo,如下:

    sudo nginx -s reload
    
    • 1

    6.测试


    在这里插入图片描述


    在这里插入图片描述


    因为我们使用的自定义证书,所以浏览器会提示不安全,作为测试,我们可以忽略这个提示。

    打开浏览器,输入 https://localhost,如果你看到了 Hello,Nginx HTTP/2,那么恭喜你,你已经成功配置了 http/2。



    在这里插入图片描述

  • 相关阅读:
    pinia下载使用时报错如何解决?
    【漏洞复现】SolarWinds——任意文件读取
    Java并发Map的面试指南:线程安全数据结构的奥秘
    计算机网络的定义和分类
    图像操作的基石Numpy
    第10章Swagger自定义实现index.html页
    SQL 时间范围和时间粒度
    Tracking::TrackLocalMap()
    centos k8s安装dapr
    PgSQL-执行器机制-Unique算子
  • 原文地址:https://blog.csdn.net/qq_41974199/article/details/134446607