5

这是我的 nginx.conf:

user www-data;
worker_processes 1;
worker_rlimit_nofile 8192;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
    worker_connections 2048;
    # debug_connection 192.168.1.1;
    # multi_accept on;
}

http {
    server_tokens off;
    include mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile on;
    tcp_nodelay on;

    gzip on;

    # http://wiki.nginx.org/HttpGzipModule#gzip_disable
    gzip_disable "msie6";
    gzip_types text/javascript text/css text/plain text/xml application/xml application/xml+rss application/x-javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.ngx;

    #tcp_nopush on;
    #keepalive_timeout  0;
}

当我尝试启动 nginx 时,这是我看到的:

nginx: [warn] duplicate MIME type "text/javascript" in /etc/nginx/nginx.conf:27
nginx: [emerg] could not build the test_types_hash, you should increase either test_types_hash_max_size: 2048 or test_types_hash_bucket_size: 64

这种相同的配置以前可以正常工作,没有任何问题。我错过了什么?

4

2 回答 2

11

在我的头撞到墙上几分钟后,我才决定“到底怎么回事,我会修复第一个错误,看看会发生什么。” 瞧,在 gzip_types 声明中删除无关的 text/javascript MIME 类型解决了这个问题。

希望这有帮助!

于 2013-10-25T00:25:18.720 回答
1

为了任何迟到但没有收到第一条消息的人的利益:

您对第一个错误的修复具有缩短导致第二条消息的行的副作用。

在我自己的情况下,愚蠢的错误是将 MIME 类型列表放在引号中。不加引号。

您无法增加“test_types_hash”的存储桶大小,因为没有指令(参考https://trac.nginx.org/nginx/ticket/203),因此减少 MIME 类型列表是唯一的选择.

参考。http://nginx.org/en/docs/http/ngx_http_core_module.html#types_hash_bucket_size

于 2019-09-16T17:02:16.817 回答