作为暂停网站使用的一部分,我想配置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 / {}
块中,但结果完全相同。
任何人都可以帮我弄清楚发生了什么事吗?
答案 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;
}