Windows 上的 nginx 总是返回 text/plain

Windows 上的 nginx 总是返回 text/plain

我在 Windows(开发机器)上使用 nginx 1.6.2,遇到一个问题,它总是会text/plain为任何文件的标头返回一个值Content-Type。这是一个问题,因为浏览器不会渲染 CSS、计算 JS 等。

默认情况下,我没有默认的 nginx.config 文件(与 Linux 不同),因此我必须从头开始构建它,同时保持其最小化。通常,我的问题可以通过包含来解决,etc/nginx/mime.types因此我从我拥有的 CentOS 服务器复制/粘贴了该文件。但这似乎没有任何效果。我试图故意将包含路径弄错,结果引发了错误,所以我认为当我将其改正时,它实际上被正确解析了。

所以我完全不知道为什么 nginx 对我收到的每一个罚款都返回 text/plain。

这是我的 nginx.conf 文件:

events {
  worker_connections  1024;
}

http {
    include     D:/dev/nginx/mime.types;

    expires off;

    default_type application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  D:/dev/nginx/logs/access.log  main;
    error_log  D:/dev/nginx/logs/error.log;


    upstream backend  {
        server localhost:62755;
    }

    server {
        listen      80;
        server_name localhost;

        client_body_temp_path      D:/dev/nginx/client_body_temp;
        proxy_temp_path            D:/dev/nginx/proxy_temp;


        location / {
            root D:/dev/frontend/src;
            index index.html;
        }

        location /api {
            proxy_pass http://backend;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
        }
    }
}

答案1

我的问题是,即使按下 CTLR+C,nginx 实例也不会被终止。我进入任务管理器时发现了这个问题。显然,旧实例保持旧版本的配置运行,并且是第一个拦截请求的实例,因此即使更改了 nginx.conf,更改也不会应用。

终止所有处理后,我的最新配置(包含 mime.types 的配置)被考虑在内,从而解决了该问题。

相关内容