我目前有 nginx 代理薄的但设置为向 Thin 所服务的应用程序提供静态文件,而不是代理请求。
我想知道如何检查规则是否设置正确。由于 Thin 不记录请求,因此我需要设置 nginx 日志,以便显示哪些请求作为文件提供,哪些请求传递给 Thin。这可能吗?如果可以,怎么做?
答案1
根据您的配置,这可能很容易实现。这是我的解决方案...
服务器 { 服务器名称域名.com; 根/路径/到/文件; # 索引 index.php index.html; # 在 access.log 中记录所有请求 access_log /某些/路径/例如/var/log/nginx/access.log; 地点 / { 尝试文件$uri $uri@thin; } 位置@thin { # 将请求传递给 Thin #proxy_pass http://thin; # proxy-access.log 中的代理特定日志 access_log /某些/路径/例如/var/log/nginx/proxy-access.log; } }
希望这可以帮助!
答案2
创建一个自定义日志格式,包括$upstream_response_time
- 如果你的后端为其提供服务,你应该需要几毫秒才能得到响应,如果 nginx 在内部提供服务,你应该得到一个破折号
答案3
这是一个非常肮脏的黑客行为,但可以使得 Nginx 或 Thin 对这些文件没有读取权限。:) 这样,您将能够找出哪一个出现错误,从而读取/提供文件。
或者,您应该能够向提供静态文件的配置块添加自定义标头。然后您将能够看到标头是否存在。