当尝试在 Nginx 中设置长字符变量时,由于 NGX_CONF_BUFFER 4096 的限制,它会显示错误。参考:https://github.com/nginx/nginx/blob/master/src/core/ngx_conf_file.c
var set: set $q 'aaaaa........till 5000 characters include white space'; error: 参数太长,可能缺少终止符“'”
在编译 Nginx 之前将 NGX_CONF_BUFFER 更改为 8192 0r 10240 以避免此类错误是否安全?
答案1
正如 Michael 所建议的,您可能不需要那么长的变量。NGX_CONF_BUFFER 定义 nginx.conf 文件中的最大行长度。您真的不需要定义包含那么多数据的配置变量。配置文件应该关注端点、标头、内容类型等,换句话说就是元数据。
对于您的用例,为了提供由 NGINX 管理的动态内容,您可以考虑使用 NGINX Javascript 或 NJS,请参阅https://nginx.org/en/docs/njs/- 查看更多示例并从这里开始:https://github.com/nginx/njs-examples。