If statement Nginx使用If语句检查上游服务器状态
因此,我试图检查我的上游服务器,并通过一个默认的响应代码时,上游关闭;当上游启动时,代理所有对它的请求 我的nginx(不工作)配置如下所示If statement Nginx使用If语句检查上游服务器状态,if-statement,nginx,reverse-proxy,nginx-location,If Statement,Nginx,Reverse Proxy,Nginx Location,因此,我试图检查我的上游服务器,并通过一个默认的响应代码时,上游关闭;当上游启动时,代理所有对它的请求 我的nginx(不工作)配置如下所示 server { listen 80; server_name auth.example.com; set $upstream 123.456.789.123:8080; location @active{ proxy_pass_header Authorization; proxy_set_header
server {
listen 80;
server_name auth.example.com;
set $upstream 123.456.789.123:8080;
location @active{
proxy_pass_header Authorization;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 10M;
proxy_read_timeout 36000s;
proxy_redirect off;
proxy_pass http://$upstream;
}
location @outage {
return 200 "yass!";
}
location / {
error_page 500 = @outage;
set $200 @active;
if ($http_status != 404){
return 500;
}
if ($http_status = 200) {
return 200;
}
}
我想要实现的很简单,如果我的上游服务器停机,则返回默认的200响应
如果我的上游服务器可用,则将所有请求代理给它
我如何使用nginx实现这一点(代码示例很酷:-))。因此,我发现哪里出了问题,以下配置对我有效
server {
listen 80;
server_name auth.example.com;
set $upstream 123.456.789.123:8080;
location / {
proxy_pass_header Authorization;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_intercept_errors on;
proxy_buffering off;
client_max_body_size 10M;
proxy_read_timeout 36000s;
proxy_redirect off;
proxy_pass http://$upstream;
error_page 500 502 503 504 = @outage;
}
location @outage {
return 200 "yas";
}
}
所以我想我哪里出了问题,下面的配置对我有用
server {
listen 80;
server_name auth.example.com;
set $upstream 123.456.789.123:8080;
location / {
proxy_pass_header Authorization;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_intercept_errors on;
proxy_buffering off;
client_max_body_size 10M;
proxy_read_timeout 36000s;
proxy_redirect off;
proxy_pass http://$upstream;
error_page 500 502 503 504 = @outage;
}
location @outage {
return 200 "yas";
}
}
您可能还需要
proxy\u intercept\u错误代码>如果希望从代理中输入错误。我怀疑在您的情况下,上游是下行响应来自nginx
。您可能还需要proxy\u intercept\u错误开启代码>如果希望从代理中输入错误。我怀疑在您的情况下,上游是下行响应来自nginx
。