首頁  >  問答  >  主體

nginx設定server_names_hash_max_size放在哪裡?

作業系統是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

意思是看到有這項就刪除的意思嗎? ###
高洛峰高洛峰2713 天前1381

全部回覆(1)我來回復

  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:20:01

    解決方法

    在/usr/local/nginx/conf/nginx.conf中http{}加入這樣一句話

     server_names_hash_max_size 512;
    

    使用 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升值

     server_names_hash_max_size 1024;
    

    錯誤原因

    保存伺服器名字的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
  • 取消回覆