使用以下 Nginx 配置:
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name isitmaintained.com;
...
}
server {
listen 178.62.136.230:80;
server_name 178.62.136.230;
add_header X-Frame-Options "SAMEORIGIN";
return 301 $scheme://isitmaintained.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
我试图重定向http://178.62.136.230/
到http://isitmaintained.com/,但是当我部署这个配置时,我最终得到了一个Redirect loop
或两个链接。
我究竟做错了什么?
我想向互联网提供资产。我创建了一个启用了网站托管的公共存储桶。
我发现AWS支持几种URL:
# HTTP + HTTPS
https://<bucket>.s3.amazonaws.com/<file>
# HTTP only!
http://<bucket>.s3-website-<region>.amazonaws.com/<file>
# HTTP + HTTPS
# Will be removed
# See https://forums.aws.amazon.com/ann.jspa?annID=6776
https://s3.<region>.amazonaws.com/<bucket>/<file>
Run Code Online (Sandbox Code Playgroud)
为什么有这么多格式,首选哪一种?
从我的观点来看,第一个 URL 更简单并且支持 HTTPS,因此在我看来更好,但是使用它有缺点吗?
这是我的 php-fpm 配置:
location @site {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_intercept_errors on;
error_page 404 /404;
}
Run Code Online (Sandbox Code Playgroud)
因为fastcgi_intercept_errors
已启用,当我的 PHP 路由器返回 404 时,Nginx 将重定向到/404
. 好。
但是由于/404
是由我的PHP应用程序生成的,并且我的PHP应用程序正确设置了404
响应代码,那么Nginx会再次尝试处理错误!(显然以循环结束)
这个问题有方法解决吗?