nginx在其他server_name返回200

时间:2018-05-07 05:26:12

标签: nginx

我有这段代码:

server {
    listen       80;
    server_name  example.com;
    return       301 https://www.sajufortune.com$request_uri;
}

server {
    listen       80;
    server_name  www.example.com;
    if ($http_x_forwarded_proto != 'https') {
        rewrite ^ https://$host$request_uri? permanent;
    }

    set $alb internal-saju-alb-before-w43.us-west-2.elb.amazonaws.com;

    location / {
        proxy_pass $alb;
    }
}

server {
    listen       80;

    location /ping/ {
        return 200 'pong';
    }
}

我从here返回了200个代码:

我希望从pong/ping/以外的任何网址发出200个example.comwww.example.com个请求。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

根据http://nginx.org/en/docs/http/ngx_http_core_module.html#listen,您需要将ping / pong服务器块放在顶部,或者在default_server选项上添加listen(例如listen 80 default_server;)< / p>

答案 1 :(得分:1)

尝试以下配置

server {
    listen       80;
    server_name  example.com;
    return       301 https://www.sajufortune.com$request_uri;
}

server {
    listen       80;
    server_name  www.example.com;
    if ($http_x_forwarded_proto != 'https') {
        rewrite ^ https://$host$request_uri? permanent;
    }

    set $alb internal-saju-alb-before-w43.us-west-2.elb.amazonaws.com;

    location / {
        proxy_pass $alb;
    }
}

server {
    listen       80;
    server_name _;
    location /ping/ {
        return 200 'pong';
    }
}