作業系統是centos 7.2 ,用
# /usr/sbin/nginx -s reload
重載nginx配置的時候,顯示如下資訊:
[root@i001 ~]# /usr/sbin/nginx -s reload nginx: [warn] could not build optimal server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64; ignoring server_names_hash_bucket_size
讓新增server_names_hash_max_size: 512
,
或server_names_hash_bucket_size: 64
,
忽略server_names_hash_bucket_size
names_size
##問題是:
1、需要加入在什麼檔案的什麼位置?
2、格式是什麼?有無分號之類的,我弄了一下總是不對。3、忽略
server_names_hash_bucket_size
解決方法
在/usr/local/nginx/conf/nginx.conf中http{}加入這樣一句話
使用 sudo /usr/local/nginx/sbin/nginx -t對nginx設定檔進行檢查,如果也提示
could not build the server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64
則再把 server_names_hash_max_size升值
錯誤原因
保存伺服器名字的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的提示,那麼首要的是增大前一個參數的大小.