我已经设置了nginx,但他返回的状态代码是:
状态码:200
但是在具有不同nginx设置的其他服务器上,我有:
状态码:200 OK
任何人都可以想到配置上的区别吗?
答案 0 :(得分:0)
我认为您的配置一切正常。
nginx提供静态文件时,它会自行创建标准的“ HTTP / 1.1 200 OK”响应状态。
但是当它把请求传递给上游服务器时,它就将响应传递回去而不更改它。
以下是通过proxy_pass指令执行的脚本示例:
<?php
$msg="OK";
if(isset($_GET["msg"])){
$msg=$_GET["msg"];
}
header("Status: 200 ".$msg);
echo "hello";
在此示例中,我们将参数传递到php脚本中,并用于制作响应状态:
#!/bin/bash
for msg in "" OK "NOT OK" "Everything is OK"
do
curl -sI "https://x3m.dev/status/?msg=$msg" |grep -E "HTTP|Server"
done
这是此bash脚本的输出
HTTP/1.1 200
Server: nginx/1.10.3
HTTP/1.1 200 OK
Server: nginx/1.10.3
HTTP/1.1 200 NOT OK
Server: nginx/1.10.3
HTTP/1.1 200 Everything is OK
Server: nginx/1.10.3