我现在使用 Nginx(端口 :8080
)和 Varnish(端口 :80
)有一段时间了,如果我收到对 mydomain.com:8080 的直接请求,我想提供一个错误页面。
你能告诉我怎么做最简单吗?
最佳答案
好的,我将每个配置文件从listen
变为127.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;
}
关于nginx - 如何让 Nginx 不服务于直接请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25119980/