Nginx: could not build the server_names_hash 解決辦法

給一個服務器下增長了一些站點別名,差很少有十多個。javascript

重啓nginx時候,提示:html

 

解決辦法是在 nginx 配置文件的 http 段中增長以下配置:java

# vi /etc/nginx/nginx.conf
...
http {
        ...
        server_names_hash_max_size 512;
        server_names_hash_bucket_size 128;
        ...
}
...

若是128還不夠,那麼就按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的提示,那麼首要的是增大前一個參數的大小.nginx

Nginx 官方文檔關於 server_names_hash_max_size 和 server_names_hash_bucket_size 這兩個參數的用法解釋的很清楚。緩存

相關文章
相關標籤/搜索