Configuration 如何将丢失文件的请求重定向到不同的服务器(nginx配置)?
若在服务器上找不到映像,我想将映像请求重定向到github repo。 我哪里出错了Configuration 如何将丢失文件的请求重定向到不同的服务器(nginx配置)?,configuration,nginx,Configuration,Nginx,若在服务器上找不到映像,我想将映像请求重定向到github repo。 我哪里出错了 location ~* \.(gif|jpg|jpeg|png)$ { try_files $uri /gitpipe =404; } location ~* /gitpipe$ { proxy_pass https://raw.github.com/Org/$arg_repo/master/$uri; } 我将配置更改为下一
location ~* \.(gif|jpg|jpeg|png)$ {
try_files $uri /gitpipe =404;
}
location ~* /gitpipe$ {
proxy_pass https://raw.github.com/Org/$arg_repo/master/$uri;
}
我将配置更改为下一个
location ~* \.(gif|jpg|jpeg|png)$ {
try_files $uri /gitpipe =404;
}
location = /gitpipe {
proxy_pass http://websaints.net/rlog.php?save;
}
但结果还是一样。Nginx不将请求重定向到静态url;
所以问题不在$uri中
顺便说一句,这个配置可以工作,但它重定向到uri,而不是代理和缓存它
location ~* \.(gif|jpg|jpeg|png)$ {
try_files $uri @redirect;
}
location @redirect {
return 301 http://websaints.net/rlog.php?save&req=$request_uri;
}
嗯…首先,您可以轻松地将您的
位置更改为:
location = /gitpipe {
因为它的意思与“^/gitpipe$”相同,但在nginx中具有最高的优先级,所以此类位置将始终作为第一个位置
接下来,您将尝试返回文件(如果文件存在),因此使用如下url:
http://your.domain.com/some_dir/another_dir/some_file.gif
您正试图从根
指令获取文件的位置
块中首先通过的是哪个块,如下所示:
root_directive/some_dir/another_dir/some_file.gif
如果此文件不存在,则您对try\u files
指令说,它应该在第二个location
块中进行搜索,这里是代理传递此url:
proxy_pass https://raw.github.com/Org/$arg_repo/master/$uri;
但就我们的例子而言,这意味着:
proxy_pass https://raw.github.com/Org/$arg_repo/master//root_directive/some_dir/another_dir/some_file.gif
其中,$arg_repo
将更改其值
这是对你的指令的解释吗?这就是你的想法吗
以下是您可以轻松重定向到所需内容的方法:
location ~ \.(jpg|png|gif) {
try_files $uri /proxy$request_url =404;
}
location ^~ /proxy(.*) {
proxy_pass https://your.proxy.domain/$1;
}
首先,您可以轻松地将位置更改为:
location = /gitpipe {
因为它的意思与“^/gitpipe$”相同,但在nginx中具有最高的优先级,所以此类位置将始终作为第一个位置
接下来,您将尝试返回文件(如果文件存在),因此使用如下url:
http://your.domain.com/some_dir/another_dir/some_file.gif
您正试图从根
指令获取文件的位置
块中首先通过的是哪个块,如下所示:
root_directive/some_dir/another_dir/some_file.gif
如果此文件不存在,则您对try\u files
指令说,它应该在第二个location
块中进行搜索,这里是代理传递此url:
proxy_pass https://raw.github.com/Org/$arg_repo/master/$uri;
但就我们的例子而言,这意味着:
proxy_pass https://raw.github.com/Org/$arg_repo/master//root_directive/some_dir/another_dir/some_file.gif
其中,$arg_repo
将更改其值
这是对你的指令的解释吗?这就是你的想法吗
以下是您可以轻松重定向到所需内容的方法:
location ~ \.(jpg|png|gif) {
try_files $uri /proxy$request_url =404;
}
location ^~ /proxy(.*) {
proxy_pass https://your.proxy.domain/$1;
}
为什么它不起作用?始终带着404
或其他东西返回,并且永远不会提出请求。我用我的服务器和访问日志来测试这一点。你能给出一个示例url吗?你用什么来测试?是的,舒尔。这就是它-查看并向日志写入新请求,以及为什么它不工作?始终带着404
或其他东西返回,并且永远不会提出请求。我用我的服务器和访问日志来测试这一点。你能给出一个示例url吗?你用什么来测试?是的,舒尔。这是它-查看和写入新的请求到logI得到了!代理传递不能包含目录!只有域名。代理通行证;-这项工作。重定向请求到现在,如果我只知道如何添加目录…我明白了!代理传递不能包含目录!只有域名。代理通行证;-这项工作。重定向请求到现在,如果我只知道如何添加目录。。。