Nginx设置server_names_hash_max_size和server_names_hash_bucket_size
我们正在使用Nginx作为Apache的反向代理,该服务可以为任何人提供自己的网站。在创建帐户时,系统会为该域创建一个新的nginx conf文件,其中包含两个条目,一个条目用于端口80,另一个条目用于443。我们注意到,在每30个左右的域中,都会出现错误: Restarting nginx: nginx: [emerg] could not build the server_names_hash, you should increase either server_names_hash_max_size: 256 or server_names_hash_bucket_size: 64. 随着大约200个域的增长,我们不得不将server_names_hash_max的大小增加到4112,并且担心这不能很好地扩展。我希望了解这些配置如何工作以及最佳设置是什么,以确保我们可以使用此方法扩展到数千个域。 同样,以该哈希大小,nginx开始花费数秒来重新加载,这导致系统在重新启动时不可用。 以下是总体设置(在Ubuntu服务器10.10 nginx / 1.0.4上运行): user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 4096; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush …