当在nginx上配置大约20个反向代理站点时,重启nginx报错【could not build server_names_hash, you should increase server_names_hash_bucket_size: 32】。
该报错是由于server_name字段过长导致的。
解决办法:
在nginx.conf中的http区段合适的位置添加【server_names_hash_bucket_size 512;】。
然后重新加载nginx,命令如:nginx -s reload。
然后尝试打开被反向代理的域名是否能正常访问。
如果还不能访问,建议停止nginx服务,再重新开启nginx服务,命令如:nginx -s stop或nginx -s quit,之后再start nginx。
如果还不行?那就再次增大bucket的值,如【server_names_hash_bucket_size 1024;】,然后再执行停止和启动nginx服务。
如果还不行?那就继续增大bucket的值,规则是2的幂,值如32,64,128,512,1024等等。
直至问题解决。