小编Vir*_*liu的帖子

为什么 nginx server_name 指令的最大长度是 14 个字符?

我有以下虚拟主机

server
{
  server_name abc.example.com;
  root /var/www/test/;
  index index.html;
}
Run Code Online (Sandbox Code Playgroud)

运行时nginx -s reload出现以下错误:

nginx: [emerg] 无法构建 server_names_hash,你应该增加 server_names_hash_bucket_size: 32

任何具有 15 个或更多字符的 server_name 都会发生同样的情况。

如果我将 server_name 设置为ab.example.com(或 15 个字符以下的任何名称),问题将停止显现。

为了解决这个问题,我添加了以下内容/etc/nginx/nginx.conf(之前没有定义):

server_names_hash_bucket_size 64;
Run Code Online (Sandbox Code Playgroud)

将其设置为 33 也可以,但不是 32。

为什么 server_name 的默认最大长度为 14 个字符?

这个限制是由 nginx 的默认设置还是由它运行的系统强加的?

server_name 为 15 如何影响最大哈希桶大小?(系统上只定义了 4 个虚拟主机)

configuration nginx

13
推荐指数
2
解决办法
3956
查看次数

标签 统计

configuration ×1

nginx ×1