如何让Nginx不提供直接请求?

时间:2014-08-04 13:35:31

标签: nginx request varnish

我现在使用Nginx(端口:8080)和Varnish(端口:80)一段时间了,如果我收到mydomain.com:8080的直接请求,我想提供错误页面。< / p>

你能告诉我怎么能以最简单的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

好的,我将每个配置文件都设置为listen127.0.0.1:8080,然后创建了一个没有指定server_name的新文件。此文件将我们返回到错误页面(例如404)。

如果您正在寻找相同的答案,但又想将您的域重定向到端口:80,那么请使用这样的配置(对于域本身):

server {
    listen      8080;
    server_name .domain.com;

    # redirect foo.domain.com:8080/bar to foo.domain.com/bar
    if ($host ~* "^([^.]+(\.[^.]+)*)\.domain.com$") {
        set $s $1;
        rewrite ^(.*)$ $scheme://$s.domain.com$1 permanent;
        break;
    }

    # redirect domain.com:8080/bar to domain.com/bar
    if ($host ~* "^domain.com$") {
        rewrite ^(.*)$ $scheme://domain.com$1 permanent;
        break;
    }

    # return error (your users have no way to get here!)
    return 500;
}