如何在nginx中将整个域标记为410 Gone?

时间:2015-08-21 20:46:31

标签: nginx

作为暂停网站使用的一部分,我想配置nginx为所有网址发送410 Gone。最简单的配置是这样的:

server {
  listen 127.0.0.1:8080;
  server_name example.ch www.example.ch;

  root /srv/www/sites/example.ch/public;

  return 410;
}

这似乎应该可行,但出于某种原因,当我转到域的根目录时,我得到404 Not Found,如果我转到任何其他URL,我得到500内部服务器错误nginx错误日志中的此消息:

  

重写或内部重定向循环,同时内部重定向到“/index.html”,客户端:127.0.0.1,服务器:localhost,请求:“GET / adsf HTTP / 1.1”,主机:“example.ch:8080”< / p>

这对我来说毫无意义。我还尝试将return 410替换为error_page 404 =410 410.html;,甚至将return 410包裹在location / {}块中,但结果完全相同。

任何人都可以帮我弄清楚发生了什么事吗?

1 个答案:

答案 0 :(得分:3)

原来问题是我在我的服务器块中混合了listen 127.0.0.1:8080;listen 8080;,这就是这种情况下的问题。

所以这个配置效果很好:

server {
  listen 8080; # Because I have Varnish in front of nginx.
  server_name example.ch www.example.ch;

  root /srv/www/sites/example.ch/public;

  return 410;
}