使用Nginx进行HTTP2反向代理

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

你好,我是无能。
最近的文章似乎都在努力支持HTTP/2...

$ curl https://soulminingrig.com/
curl: (92) Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]

然后...

什么是HTTP/2 - JPNIC

升级只能在http的情况下使用。

因此,Nginx和Apache之间通过HTTP1.1连接,包含了这个头部信息,导致在HTTPS标准HTTP/2通信中使用curl时会报错。
所以我想,如果把这个删掉是不是就行了?试了一下,果然可以了。

简单来说,就是因为在HTTP通信时以包含头部信息的形式进行了分发,所以只要将其调整为适应HTTP2的形式就行了,对吧?就是这种感觉。
在日语信息中,我认为NIC的文章是最容易理解的。

Nginx配置

似乎只需要将其设置在location指令中并排除Upgrade头部即可。
也许这并非必要,但由于是HTTP通信,我还是明确地指出了。

    proxy_hide_header Upgrade;
    proxy_http_version 1.1;

现在来curl!

这样一来,执行curl -I的话...

$ curl -I https://soulminingrig.com/
HTTP/2 200 
server: nginx/1.27.0
date: Thu, 21 Nov 2024 22:44:47 GMT
content-type: text/html
content-length: 15375
vary: Accept-Encoding
last-modified: Thu, 21 Nov 2024 03:45:14 GMT
etag: "3c0f-627641819d3e9"
accept-ranges: bytes
vary: Accept-Encoding
content-security-policy: upgrade-insecure-requests
alt-svc: h3=":443"; ma=86400
x-content-type-options: nosniff

成功了!!!
今天有我的欢送会,可以放心地喝酒了!
那么,下次再见。请多关照。

Related Posts