在我的 NGINX 设置中,当 URL 太长时,似乎会出现将用户重定向回主页的问题
我可以更改 NGINX 中的设置来启用更长的 URL 吗?
我正在考虑下面这个选项,但我不确定。
large_client_header_buffers number size
然而,文档并没有很好地解释这个选项。
答案1
好吧,伙计们(还有姑娘们?),经过长时间的搜索,我终于发现了这个问题的根源。
有一个名为 suhosin 的第三方模块可以安装在 php 上。有关该项目的更多信息可以在此处找到http://www.hardened-php.net/suhosin/
无论如何,您需要打开 php.ini 并找到以下 3 行。如果它们不存在,则需要使用适当的变量创建它们
suhosin.get.max_name_length (default 64)
suhosin.post.max_name_length (default 64)
suhosin.request.max_varname_length (default 64)
我希望这能帮一些人免去我最终解决的麻烦!尽情享受吧!
答案2
你可能做对了。你需要将其从 large_client_header_buffers 的默认值 4 4k/8k 提高
如果您的缓冲区已达到最大值,则 nginx 可能只是将您重定向到索引页。但是 nginx 手册说:如果客户端发送更大的标头,nginx 将返回错误“请求 URI 太大”(414)。查看日志以查看您收到的响应。如果您收到 414,那么肯定是这个原因。