浏览 5.2k
怎么查看nginx生效的参数
比如client_max_body_size 10g,配置文件里写了就一定生效么,能不能获取当前nginx当前的参数呢
按点赞数排序
按时间排序
到底是对所有请求生效,还是只对某个域名下的请求,亦或者是某类URL下的请求生效呢?这很难定义,也难以展示。Nginx可以检测到非法的配置,但这个配置的生效范围非常复杂,通常需要基于规则、经验判断,以及自己构造请求来验证(只需要将Content-Length头部设到10GB以上,不用真的传输这么大的文件)
3
回答于2020-08-28 17:45
1
回答于2020-09-10 16:21
Nginx 目前应该 还没有 提供一种方式来查看通过配置文件已经生效的参数。
因为当你配置出错的时候,Nginx 解析配置文件会报错,所以如果解析没有报错,说明你的配置应该是生效的,Nginx 应该能够保证这一点。
实在不放心,可以构造一个请求来测试一下。
0
回答于2021-09-05 16:10
nginx-1.12.1,nginx-1.22.0 没复现这个问题。windows 是用的哪个版本? nginx 是哪个版本? 试下用administrator 权限。换台机器试试。
关于quic http3服务,首先需要明白以下几点:
1. 关于证书,证书跟具体的http协议无关,如果http2 同样证书可以成功访问,而http3服务不可以,应该排除证书问题
2. 关于域名,同样的局域网,不管是http2还是http3服务 ,域名都是一样的,不一样的只是协议类型和端口号,http2是基于tcp,http基于quic,quic又基于udp,协议类型的话是浏览器客户端主动的行为,端口也是可以可指定,如果http2服务可以通过域名访问成功,说明跟域名没有关系,可以排除域名问题
3. 有一点需要注意,目前常见浏览器已经支持http3,不过访问服务的时候,都首先会通过http1或者http2去访问服务,这就要求服务端同事需要有tcp 的端口提供服务,然后response 带有Alt-Svc 'quic=":443"; h3=":443" 类似header,告诉浏览器服务端支持http3, 然后浏览器才会通过quic发送udp包去访问服务端的udp server端口,访问服务
4. 基于上述1和2这两点,证书和域名问题都可以排除,而您仿照此前的配置文件,但是访问主页却显示http1协议连接。关于这个问题,就可以参考第3点,浏览器先是http1访问,在这一处,您可在浏览器通过f12看到请求的返回信息,看response 处是否有Alt-Svc 'quic=":443"; h3=":443" 类似header, 如果没有该header ,请检查server端tcp 服务的配置;如果有说明您部署的服务tcp端口提供了服务,而且说明证书和域名都是没有问题的,这时候您重新点击浏览器访问服务,通过浏览器或者wireshark抓包工具查看浏览器是否发送了udp的包去请求server,按照您在云环境可以成功访问,说明浏览器是没问题的,应该肯定会发送udp请求报文,这时候您要看局域网内部去抓包udp端口上的报文,确认是否收到来自于浏览器的udp报文,如果没有,可能是局域网服务器屏蔽掉了该端口的报文,请检查局域网服务器的防火墙等配置;如果能够抓到该报文,您需要查看nginx的log文件了,这时候可以看到quic相关日志,如果有错误,可以看到原因