錯誤信息
nginx重啟的時候報錯了,信息如下:nginx: [emerg] could not build the server_names_hash, you should increase either server_names_hash_max_size: 2048 or server_names_hash_bucket_size: 64
解決辦法
vim /usr/local/nginx-1.0.5/conf/nginx.conf
在http下添加server_names_hash_bucket_size 128
檢查nginx:/usr/local/nginx-1.0.5/sbin/nginx -t
重啟nginx:/usr/local/nginx-1.0.5/sbin/nginx -s reload
保存服務器名字的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的提示,那么首要的是增大前一個參數的大小。