http2 模块 nginx 不工作

2023-12-13

我在 nginx 中启用 http2 协议时遇到一些问题。 网站上写的是 Laravel 5(但我认为这并不重要)。

首先,我升级nginx版本。

Debian ~ # nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.1e 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector -- param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -DFORTIFY_SOURCE=2 -fstack-protector -D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-threads --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/headers-more-nginx-module --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-auth-pam --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-cache-purge --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-dav-ext-module --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-development-kit --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-echo --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/ngx-fancyindex --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-http-push --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-lua --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-upload-progress --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/nginx-upstream-fair --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/ngx_http_substitutions_filter_module --add-module=/tmp/buildd/nginx-1.10.1/debian/modules/passenger/src/nginx_module

然后,我添加“http2”来监听 ssl。

server {
    server_name tratata.com www.tratata.com;
    listen 123.123.123.123;
    listen 123.123.123.123:443 ssl http2;

    gzip on;
    gzip_min_length  1100;
    gzip_buffers  4 32k;
    gzip_comp_level 5;
    gzip_types    text/plain application/x-javascript text/xml text/css;
    gzip_vary on;

    ssl_certificate /etc/letsencrypt/live/tratata.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/tratata.com/privkey.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security max-age=15768000;

    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

    charset UTF-8;

    root /var/www/tratata.com/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    # pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
    location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

}

但是,当我在 Google Chrome Inspector 中检查协议时,网络选项卡中仍然写着 http/1.1,在哪一边挖掘?


Google Chrome 现在坚持使用 ALPN 进行 HTTP/2,因此您需要使用 OpenSSL 1.0.2 或更高版本构建 Nginx(在大多数平台上尚未提供打包版本,因此您现在可能需要从源代码手动安装) 。

https://ma.ttias.be/day-google-chrome-disables-http2-nearly-everyone-may-31st-2016/

检查它是否适用于 Opera 中的 HTTP/2,如果是,那就是你的问题。

https://serverfault.com/questions/775298/debian-jessie-nginx-with-openssl-1-0-2-to-use-alpn-rather-than-npn

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

http2 模块 nginx 不工作 的相关文章

  • nginx 将虚拟目录重写为文件

    这应该很容易做到 但我的头撞在墙上了 如果我收到对 www mysite com mypath 的请求 我想提供 www mysite com myotherpath thisfile html 的内容 我如何使用 nginx 配置来做到这
  • BasicNetwork.performRequest:意外响应代码 500

    我的 Android Studio 中有这个登录 Java 代码 private void loginUser pd ProgressDialog show LoginActivity this Loading StringRequest
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • PHP 扩展 mysqli 和 nd_mysqli 之间的区别[重复]

    这个问题在这里已经有答案了 Mysqli 准备好的语句 如下所示 在以下情况下会抛出以下错误 get result 叫做 stmt connection gt prepare select column from table where i
  • Nginx 中 uwsgi_pass 和 proxy_pass 的区别?

    我在 Nginx 后面运行 uWSGI 并一直在使用proxy pass让 Nginx 访问 uWSGI 切换到有什么好处吗uwsgi pass 如果是这样 那是什么 uwsgi pass使用一个uwsgi协议 proxy pass使用普通
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • 无法在服务器端 NodeJS 启用 CORS

    我无法启用CORS在服务器端 我的前端和后端服务器有不同的端口 服务器端的实现方式如下 http createServer function req res Here you can create your data response in
  • 在云服务器中运行 python 脚本的最简单方法是什么?

    我有一个网络爬行 python 脚本 需要几个小时才能完成 并且无法在我的本地计算机上完整运行 有没有一种方便的方法可以将其部署到简单的 Web 服务器 该脚本基本上将网页下载到文本文件中 如何最好地实现这一点 谢谢 既然你说性能是一个问题
  • Nginx - 自定义 404 页面

    Nginx PHP 在 fastCGI 上 对我来说非常有用 当我输入不存在的 PHP 文件的路径时 我不会得到默认的 404 错误页面 任何无效的 html 文件都会出现该错误页面 而只会得到 未指定输入文件 如何自定义此 404 错误页
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • nginx 反向代理 websocket

    nginx 现在支持代理 websockets 但我无法找到任何有关如何在没有单独的情况下执行此操作的信息location应用于使用 websocket 的 URI 的块 我见过一些人推荐这种方法的一些变体 location proxy h
  • 如何关闭 Grizzly 日志记录?

    如何关闭 Grizzly 的日志记录 我想关闭以下日志记录 Okt 18 2018 8 42 24 AM org glassfish grizzly http server NetworkListener start INFORMATION
  • nginx 匹配位置中的特定单词

    我在匹配 nginx request body 变量中的特定单词时遇到问题 如果正文请求中有特殊单词 我想代理传递 所以我的方法是这样的 location php if request body proxy pass http test p
  • 如何在 Debian 上编译 DOS 程序?

    在我的汇编语言课程中 我们使用 DPMI 编写 DOS 程序 不幸的是 我无法一直使用 32 位 Windows 机器 我在我使用的几乎每台计算机上都安装了 Debian 虚拟机 我已经安装了 DOSBox 和 DOSEMU 有什么办法可以
  • 为什么 opcache 没有刷新?

    我用guzzlehttp guzzle封装在拉拉维尔 8 升级到后PHP 8 I get Symfony Component ErrorHandler Error FatalError Invalid opcode 117 2 0 in f
  • 使用nginx容器作为反向代理时的原始url

    我有一个 Web 应用程序部署为码头集装箱 我也有一个nginx容器 使用dnsmasq解析器 设置为充当 Web 应用程序前面的反向代理 它的 80 端口映射到主机 我的应用程序使用 SSO 身份验证 当我使用身份提供商登录时 回调 ur
  • 如何修复 Nginx 自动 301 重定向到带有尾部斜杠的相同 URL?

    当我尝试将 Web 应用程序的子目录中的索引文件访问到相同的 URL 但附加了斜杠 时 Nginx 出现了不良行为 它正在重新路由请求 我有一个简单的 Web 应用程序 其中设置了一个根目录和其中的许多子目录 每个子目录中都有一个 inde
  • 错误请求 400:nginx/gunicorn

    我已经遵循了这个教程 http blog wercker com 2013 11 25 django 16 part3 html http blog wercker com 2013 11 25 django 16 part3 html我现
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • 上游太大 - nginx + codeigniter

    我从 Nginx 收到此错误 但似乎无法弄清楚 我正在使用 codeigniter 并使用数据库进行会话 所以我想知道标题怎么会太大 有没有办法检查标题是什么 或者看看我能做些什么来修复这个错误 如果您需要我提供任何conf文件或其他文件

随机推荐

  • 根据顶部图像的 Alpha/透明度混合两个 uiimage

    我正在尝试将背景与前景图像混合 其中前景图像是带有线条的透明图像 我正在尝试这样做 UIGraphicsBeginImageContext CGSizeMake 320 480 CGContextRef context UIGraphics
  • ORION:获取订阅列表

    我有兴趣访问活动订阅列表 但在阅读了所有有关 API 的 wiki 后 https forge fi ware org plugins mediawiki wiki fiware index php Publish Subscribe Br
  • 与empty、isset、!empty、!isset 混淆

    我有以下内容无法正常工作 GET category 也可以等于0 if empty GET category do something else do something else 我如何重写这个 if 语句来做 3 件不同的事情 做某事如
  • JSOUP - 如何使用 JSOUP 抓取“需要登录”页面

    我在抓取我想要抓取的确定的网站时遇到困难 问题是 成功登录该网站后 我无法访问需要有效登录的链接 例如 public Document executeLogin String user String password try Connect
  • PHP 联系表 - 发送后希望留在我的网站上

    我正在创建 PHP 联系表单我所遇到的只是我的 php 脚本的一个小问题 当电子邮件发送出去时 会调用一个新的 谢谢 页面 因此 带有联系表单的实际网站消失了 但我不希望这种情况发生 如果按下发送按钮我想要stay在我的网站上 显示一个空的
  • 如何对 pandas DataFrame 中的连续值进行分组

    我在 DataFrame 中有一个列 其中包含值 1 1 1 1 1 1 我怎样才能像这样将它们分组 1 1 1 1 1 1 您可以使用groupby按习惯Series df pd DataFrame a 1 1 1 1 1 1 print
  • 在 R 中按列中的行值和行中的列值对 data.frame 进行排序

    我有六只玄凤鹦鹉鸟 Beefy Scoundrel Baston Mattdamon Jesus and Hulkhogan 这些鸟拉屎很多 而且在很多不同的地方 我决定追踪过去两周内这种情况发生的地点和频率 并且我试图找出这些小恶魔今天在
  • 添加内联注释后 Bash 命令停止工作

    在子 shell 中生成的新值的分配在没有尾随注释的情况下也可以工作 newname echo newname sed s TD oldnewTD TD r ftd1 但变量newname如果添加尾随注释 则保持不变 newname ech
  • 暂停所有其他视频,无论页面上有多少视频

    因此 我在一个多页面项目上使用 video js 该项目的页面每个页面上的视频数量不同 我想播放一个视频来暂停页面上播放的任何其他视频 我已经让它工作了 但我的代码只有在专门针对该页面制作时才有效 而不是单独处理每个页面 HTML 示例
  • 从抽象基类实现纯虚函数:重写说明符有什么意义吗?

    背景 我刚刚偶然发现了一个用例override说明符据我所知 这似乎是多余的 而且也没有任何特定的语义含义 但也许我遗漏了一些东西 因此这个问题 在继续之前 我应该指出 我试图在这里找到答案 但我得到的最接近的是以下线程 并没有真正回答我的
  • Selection.OnAction = "工作簿名称!Macroname"

    假设您有两个工作簿 一个名为 MyWorkbook 另一个名为 PatchMyWorkbook 两个工作簿在保存时都打开 PatchMyWorkbook 有一个宏 用于添加按钮并将 MyWorkbook 的现有宏分配给 MyWorkbook
  • Spring 中的 Elasticsearch HTTP 身份验证

    我想访问受用户名和密码保护的远程elasticsearch https 用户名 密码 aws eu west 1 portal1 dblayer com 11109 在 Spring 中 使用 XML 配置我能够访问我的本地主机弹性 如下所
  • 使用 Jackson 和 Spring-Boot 将 Base64 编码的 JSON 解码为 POJO

    我有一个这样的请求 varA A varB TCFNhbiBKb3NlMRgwFgYDVQQK 关键在哪里varB是一个 base64 编码的 JSON 字符串 像这样的东西 nestedVarB1 some value here nest
  • SymPy 仅打印函数名称

    我正在尝试在 SymPy 中进行一些符号计算 但我无法使用乳胶打印并获得我想要的图形输出 这一直困扰着我 并且花了几个小时 也许是几天 试图找到一种自定义对象打印方式的方法 在 LaTeX 中 在 pprint 表示中 它有很好的文档记录
  • redis dbsize命令的准确性

    准确度如何dbsizeredis 中的命令 我注意到返回的键数dbsize与返回的实际键数不匹配keys命令 这是一个例子 redis cli dbsize integer 3057 redis cli keys wc l 2072 Why
  • 无法调用匿名类方法

    我正在尝试调用一个方法 setPostal String post 我是从一个匿名类创建的 但由于某种原因 编译器在缅因州甚至无法识别它 这是有什么原因吗 我的代码的一部分 地址是Student的内部类 Student public cla
  • 当我们改变父对象的原型时 __proto__ 指向哪里?

    通常 当我们使用 new 关键字创建一个新对象时 实际上 原型 创建对象的属性指向原型父类的属性 我们可以如下测试 function myfunc myfunc prototype name myfunction var child new
  • 解决 JSONException 重复键

    我正在使用谷歌自定义搜索引擎并以 JSON 格式获取结果 对于某些查询 JSON 结果具有重复的键 因此它会产生 JSONException Duplicate key nickname 等 我正在使用JAVA String str con
  • ReadyStatement 忽略查询中的参数:java.sql.SQLException: 参数索引超出范围(1 > 参数数量,即 0)[重复]

    这个问题在这里已经有答案了 我使用java和jdbc驱动程序 java sql 我得到了这段代码 String clinetIP 220 181 108 89 String sql SELECT FROM as WHERE as ip ra
  • http2 模块 nginx 不工作

    我在 nginx 中启用 http2 协议时遇到一些问题 网站上写的是 Laravel 5 但我认为这并不重要 首先 我升级nginx版本 Debian nginx V nginx version nginx 1 10 1 built wi