QA_414_request-uri_too_large_20200828

起因

  • 领导要求对一批对内部人员服务的域名统一更换成https,为了方便采取更改CLB的监听转发方式实现

    * 即由原TCP协议监听更换成https监听

  • 配置完成后,第二天研发人员说出现请求参数过长报错

解决办法

  • 像这种报错,一般都是再nginx配置文件中加大 请求大小 的限制
  • 一般都加在nginx.conf的http区域,使其全局生效,nginx -s reload 重读配置文件即可
1
2
3
4
5
6
7
#请求头总长度大于128k时使用large_client_header_buffers设置的缓存区
client_header_buffer_size 128k;

#large_client_header_buffers 指令参数4为个数,128k为大小,默认是8k。申请4个128k。
large_client_header_buffers 4 128k;

client_max_body_size 10m;
  • 按上述方法更改完成后依然不生效,nginx也没有相关日志,怀疑是请求没有到nginx,在腾讯云CLB就被拒绝了
  • 咨询腾讯云客服后发现需要对CLB进行个性化自定义设置,而传统型CLB不支持,需要对方在后台进行设置,提供给对方CLB的ID后,对方确认后,传统型LB,无法个性化
  • CLB的自定义设置连接 https://cloud.tencent.com/document/product/214/15171
  • 不通过腾讯云的CLB进行https认证,CLB采取TCP监听 https证书部署在nginx上后修改上述三个配置也可解决

QA_414_request-uri_too_large_20200828
https://imwang77.github.io/2020/08/28/QA_414_request-uri_too_large_20200828/
作者
imwang77
发布于
2020年8月28日
更新于
2024年1月3日
许可协议