我已将 Apache 配置为返回 200 响应,而不使用此配置行提供任何文件
Redirect 200 /hello
我可以用 Nginx 做到这一点吗?我不想提供文件,我只希望服务器响应 200(我只是记录请求)。
我知道我可以添加一个索引文件并实现同样的效果,但是在配置中执行此操作意味着出错的可能性会降低。
答案1
是的你可以
location / {
return 200 'gangnam style!';
# because default content-type is application/octet-stream,
# browser will offer to "save the file"...
# if you want to see reply in browser, uncomment next line
# add_header Content-Type text/plain;
}
答案2
如果你想退货格式化 HTML 文本,不提供 HTML 文件:
location / {
default_type text/html;
return 200 "<!DOCTYPE html><h2>gangnam style!</h2>\n";
}
如果你想回复一条短信无 html 格式,正如答案所指出的:
location / {
add_header Content-Type text/plain;
return 200 'gangnam style!';
}
如果你只是想要返回 200:
location / {
return 200;
}
只需记住:location
块内有server
块。这是文档了解有关该主题的更多信息。
PS:我在许多服务器上运行着类似的配置(格式化的 html)。
答案3
您确实需要使用 204,因为 Nginx 不允许没有响应主体的 200。要发送 204,您只需使用return 指令到return 204;
适当的位置。
答案4
根据状态代码定义,我相信您希望它是 204,而不是 200。200 需要与响应中的资源一起出现,否则我怀疑大多数正常的浏览器都会对此感到困惑。您可以使用的另一个状态是 304,它用于缓存内容。