我在 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;
}
}
}
我的问题是,即使在 CTLR+C'ing 时,nginx 实例也没有被杀死。我通过进入任务管理器找到了这个。显然旧实例保持旧版本的配置运行,并且是第一个拦截请求的,因此即使更改 nginx.conf,也不会应用更改。
杀死所有已处理的东西,所以我的最新配置,我包含 mime.types 的配置被考虑在内,并解决了这个问题。