tail -f /var/log/nginx/error.log
2013/05/04 23:43:35 [error] 733#0: *3662 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 127.0.0.1, server: _, request: "GET /robots.txt HTTP/1.1", host: "kowol.mysite.net"
HTTP/1.1", host: "www.joesfitness.net"
2013/05/05 00:49:14 [error] 733#0: *3783 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 127.0.0.1, server: _, request: "GET / http://www.qq.com/ HTTP/1.1", host: "www.qq.com"
2013/05/05 03:12:33 [error] 733#0: *4232 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", host: "joesfitness.net"
我从nginx错误日志中获取这些,我没有“ kowol”子域,我的网站上没有指向qq.com或joesfitness.net的任何链接。 编辑:Nginx默认配置:
server {
listen 8080; ## listen for ipv4; this line is default and implied
listen [::]:8080 default ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
deny all;
}
# Only for nginx-naxsi : process denied requests
#location /RequestDenied {
# For example, return an error code
#return 418;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /usr/share/nginx/www;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
#With php5-fpm:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
#1 楼
这是一个奇怪的问题,尽管我敢打赌问题出在哪里: try_files $uri $uri/ /index.html;
这里的问题是这里的第二个参数
$uri/
导致每个index
指令中的文件中的一部分将依次尝试。如果未找到,则将其移至/index.html
,这将导致重新输入相同的location
块,并且由于该块仍然不存在,您将得到一个无限循环。我将重写如下所示:
try_files $uri $uri/ =404;
,如果在
index
指令中指定的索引文件都不存在,则返回404错误。 >顺便说一句,您看到的那些请求是Internet背景噪音。尤其是,它们是确定您的Web服务器是否为开放代理服务器的探针,当用户执行恶意活动时可以被滥用以隐藏恶意用户的来源。在这种配置下,您的服务器不是开放式代理,因此您不必担心。#2 楼
如果您的index.php
完全丢失,您还将收到此错误消息。评论
是的,在我的情况下,我把路径放在根参数上犯了一个错误。
– dlopezgonzalez
16-4-3在14:41
在我的情况下index.html
– Beau Barker
20 Apr 30'14:36
#3 楼
真烦人它在几周前就可以使用了,今天尝试时对我却失败了。行:root /usr/share/nginx/www;
由于文件的位置在
nginx
上,将不再起作用。要修复,只需更改指向正确目录的根指针,或创建到新目录的符号链接:cd /usr/share/nginx
sudo ln -s html www
对我有用。
#4 楼
我昨天遇到了这个问题,因为我正在通过代理服务器测试nginx,该代理服务器缓存了不再存在的重定向。对我来说,解决方案是通过我连接的squid3代理服务器上的$ sudo service squid3 restart
。 评论
请注意,我本着良好的意愿分享了这个答案。出现此错误的原因多种多样,需要花费一些时间才能找出代理缓存的原因。
– Ninjaxor
2015年5月1日18:40
#5 楼
今天有此错误,请花几个小时弄清楚原因。原来有人删除了该网站的所有文件。#6 楼
只是在发生这种情况时添加另一种情况。就像在已接受的答案中一样,通常会在尝试一系列位置然后创建内部重定向循环(永无止境)时发生。即使使用限制性chmod(在某些锁定配置中)。以下是示例。假设您像往常一样具有
index.php
前控制器: /some/thing
。但是,像往常一样,您需要直接公开一些PHP文件(因此
index.php
而不是location ~\.php
。设置为0400以进行安全锁定在这种情况下,只要文件由“ PHP-FPM用户”拥有,一切仍然可以正常使用。NGINX不需要读取文件,因为它可以只需将其文件名传递给PHP-FPM即可执行并返回FastCGI响应。
然后,您想处理某人访问
location = /index.php
时发生的情况,因为使用此相当标准的配置,您将获得为了解决这个问题,有些人补充说:没关系现在,一切都会因重定向周期错误而中断。为什么?
因为此序列在循环中发生:
当请求
index.php
URL时,nginx输入chmod
,未找到真实文件并打开到/non-existent.php
,然后进入
No input file specified.
位置块,并尝试检查是否可以读取if
。由于无法执行,因此将其重写为相同的/some/page
,然后再次返回到location /
。 评论
谢谢Danila Vershinin!这对我有帮助:location / {try_files $ uri $ uri / /index.php?$args; }
–兔子
19-09-6在20:14
评论
感谢您的解释。有什么办法可以阻止/禁止这种探测?
– pavs-maha
13年5月5日在5:28
并不是完全正确,只要给他们提供一个不错的404,他们最终就会弄清楚。
–迈克尔·汉普顿
13年5月5日下午5:29
“有趣”是ubuntu 13.10上的默认配置具有try_files $ uri $ uri / /index.html;和index index.php index.html index.htm;组。导致问题中的错误。 12.04和14.04并非如此,因此在服务器上发生的可能性较小。
–leifcr
2014年4月3日在8:54
我的问题是我正在运行Laravel(带有vue-router),所以我需要将/index.html更改为/index.php
–最大
19/12/17在8:06