優化服務器域名的散列表大小
阿新 • • 發佈:2017-05-31
timeout buck abcd index config hash list oct ash
如下,如果在 server_name 中配置了一個很長的域名,那麽重載 Nginx 時會報錯,因此需要使用 server_names_hash_max_size 來解決域名過長的問題,該參數的作用是設置存放域名的最大散列表的存儲桶的大小,根據 CPU 的一級緩存大小來設置。
server { listen 80; server_name www.abcdefghijklmnopqrst.com; # 配置一個很長的域名 location / { root html/www; index index.html index.htm; } }
[[email protected] conf]# /usr/local/nginx/sbin/nginx -t # 如果配置的域名很長會出現如下錯誤 nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 64 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
[[email protected] ~]# cat /usr/local/nginx/conf/nginx.conf...... http { include mime.types; server_names_hash_bucket_size 512; # 配置在 http 區塊,默認是 512kb ,一般設置為 cpu 一級緩存的 4-5 倍,一級緩存大小可以用 lscpu 命令查看 default_type application/octet-stream; sendfile on; keepalive_timeout 65; server_tokens off; include vhosts/*.conf; }
優化服務器域名的散列表大小