gpt4 book ai didi

ruby-on-rails - Nginx proxy_pass 然后 try_file

转载 作者:行者123 更新时间:2023-12-04 03:02:40 24 4
gpt4 key购买 nike

我正在设置一个带有 nginx 的 Rails 应用程序。

我想要的是首先检查 URL 是否对 Rails 有意义 然后 提供公用文件夹的内容。

我无法做到这一点:

upstream extranet {
server localhost:3000;
}

server {
location / {
try_files @extranet $uri;
root /var/www/extranet/public;
}

location @extranet {
proxy_pass http://extranet;
proxy_read_timeout 90;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
client_max_body_size 100m;
}
}

我得到: *1 rewrite or internal redirection cycle while internally redirecting to "/"错误。

好像是 try_files $uri @extranet;可以,但在我的情况下,首先检查 Rails 应用程序感觉更安全,因为公共(public)文件夹可能会更改。

最佳答案

try_files检查本地文件系统上是否存在文件,并且无法响应来自代理的响应代码。

推测,如果远程页面不存在,则代理响应带有 404 响应,可以通过 error_page 进行拦截陈述。

例如:

location / {
proxy_pass http://extranet;
proxy_set_header ...
proxy_set_header ...
proxy_set_header ...

proxy_intercept_errors on;
error_page 404 = @fallback;
}
location @fallback {
root /var/www/extranet/public;
try_files $uri =404;
}

this document更多。

关于ruby-on-rails - Nginx proxy_pass 然后 try_file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com