我编写了这个/etc/nginx/conf.d/apply.conf
并启动了nginx。
server {
location = /hoge {
return 200;
}
}
但是curl命令失败。
curl localhost:80/hoge
上面写着
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.13.9</center>
</body>
</html>
日志包括
open() "/usr/share/nginx/html/hoge" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /hoge HTTP/1.1", host: "localhost"
我只想返回没有响应体的状态代码,或者响应体为空。
我换了这个,但还是不行。
location /hoge {
return 200 'Wow';
add_header Content-Type text/plain;
}
也试过这个。
location /hoge {
return 200 'Wow';
default_type text/plain;
}
1条答案
按热度按时间oymdgrw71#
没有上下文(整个nginx配置文件的样子)很难说,因为how nginx processes a request
像下面这样的配置文件应该可以很好地满足您的需求:
然而,如果你的配置文件有其他的位置块(特别是如果它们是基于正则表达式的),那么你可能得不到预期的解决方案。
向
curl localhost:80/hoge
发送请求将返回http状态代码418而不是200。这是因为regex位置在确切位置之前匹配。所以,长的答案是:如果不了解您正在使用的整个nginx conf文件的上下文,就很难知道答案,但是了解how nginx processes a request将帮助您找到答案。