nginx could not build the server_names_hash 解决方法

nginx “nginx could not build the server_names_hash”解决方法

给一个服务器下增加了一些站点别名,差不多有20多个。

重启nginx时候,提示:

could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32

解决方法:

在配置文件的http{}段增加一行配置
server_names_hash_bucket_size 64;
如果64还不够,那么就按32的倍数往上加。

下面是在中文wiki上摘抄的一段说明:

保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.

(0)

相关推荐

  • nginx could not build the server_names_hash 解决方法

    nginx "nginx could not build the server_names_hash"解决方法 给一个服务器下增加了一些站点别名,差不多有20多个. 重启nginx时候,提示: could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 解决方法: 在配置文件的http{}段增加一行配置 server_names_hash_bucket_size

  • nginx安装完成无法解析php解决方法

    目录 方法一 方法二 安装完成nginx后,发现无法解析php代码,现在解决方案如下 方法一 找到nginx配制文件,如图下添加配制(截图画出来的),我的配制文件位置是/etc/nginx/sites-available/default location ~ \.php$ { root /var/www/html; include snippets/fastcgi-php.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_param  SCRIPT_FILEN

  • nginx 代理后出现503的解决方法

    目录 问题: 解决思路: 问题: 配置serve_name后,并且在hosts中添加对应的映射,重新启动nginx后,不生效 解决思路: 1.serve_name设不设置,启动nginx后,都能通过localhost或者windows10.microdone.cn访问: 2.根据这个问题,查看网络配置: 操作步骤:1).win+r,输入regedit: 2).查看注册表: 计算机\HKEY_ _CURRENT_ _USER\Software\Microsoft\Windows\CurrentVe

  • Nginx报404错误的详细解决方法

    近日在部署项目时,出现了一些问题,如图 正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的 这个项目部署过好多次,没有出现过这样的错误. 这是原版没动过的解压缩后的nginx.conf的源文件 圈起来的地方是应该按照项目配置对应的ip和监听的端口 listen对应的是端口,server_name对应的是访问的ip 但是这样是不能解决问题,我们需要添加如下

  • Nginx could not build the server_names_hash 错误的解决办法

    在给nginx 配置了一个超长的域名后,通过 /usr/local/nginx/sbin/ngnix -t 检查配置文件时出现一下错误: 复制代码 代码如下: could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 解决办法是在nginx的配置文件的http段中增加如下配置: 复制代码 代码如下: server_names_hash_bucket_size 64; 如

  • Nginx下无法使用中文URL的解决方法

    前言 最近更换了博客空间后,发现许多文章页出现404的情况,找了一下原因,发现是由于URL含有中文而Nginx默认不支持中文URL导致的.此文记录了解决方法. 在Apache中,要实现对中文的支持需要单独加载中文模块,而Nginx是支持多种编码不需要安装其他组件的,只是默认是走UTF-8的支持路线.这里提供两种方法实现Nginx对中文URL的支持. 方法一 利用convmv对文件名转码 此方法治标不治本,仅供紧急时候使用(访问量大时间段,无法对服务器进行重启操作的时候). 这里以CentOS为例

  • 深入探讨:Nginx 502 Bad Gateway错误的解决方法

    max_children=40 , 每个children平均占用20M-30M内存,children越多,可以同时接受的并发数量越多,一般children的值是网站最高并发数+浮动值,这值再×内存占用,就是你需要用到的内存.max_requests = N 是指当每个children接受了N次请求以后,就会把自己杀死,然后重新建立一个children.PV / max_children = 每一个children接受的request次数[ 默认预设浏览一个只调用一次PHP程序,或许异步调用呢?接

  • Nginx中worker connections问题的解决方法

    查看日志,有一个[warn]: 3660#0: 20000 worker_connections are more than open file resource limit: 1024 !! 原来安装好nginx之后,默认最大的并发数为1024,如果你的网站访问量过大,已经远远超过1024这个并发数,那你就要修改worker_connecions这个值 ,这个值越大,并发数也有就大.当然,你一定要按照你自己的实际情况而定,也不能设置太大,不能让你的CPU跑满100%. 所以,当你修改提高了配置

  • linux环境配置nginx导致页面不刷新的解决方法

    在linux环境下,配置了nginx负载均衡,由于可能在虚拟主机的配置文件nginx.conf中,对缓存机制未配置成功,导致页面不刷新,仍然显示缓存中的内容. 最后通过注释nginx.conf文件中的相关缓存配置,然后到tmp目录下查看已生成的缓存文件,如图: 这里我们需要将proxy_cache以及proxy_temp文件删除: 重启nginx服务:sercive nginx restart 页面刷新的问题解决了...

  • nginx代理多次302的解决方法(nginx Follow 302)

    用proxy_intercept_errors和recursive_error_pages代理多次302 302是HTTP协议中的一个经常被使用状态码,是多种重定向方式的一种,其语义经常被解释为"Moved Temporarily".这里顺带提一下,现实中用到的302多为误用(与303,307混用),在HTTP/1.1中,它的语义为"Found". 302有时候很明显,有时候又比较隐蔽.最简单的情况,是当我们在浏览器中输入一个网址A,然后浏览器地址栏会自动跳到B,进

随机推荐