Zxaos Asked: 2012-06-21 20:07:10 +0800 CST2012-06-21 20:07:10 +0800 CST 2012-06-21 20:07:10 +0800 CST 如何确定 nginx 将哪个请求发送给代理以及它服务于哪个请求? 772 我目前有Thin的 nginx 代理,但设置为 Thin 正在服务的应用程序提供静态文件,而不是代理请求。 我想知道的是如何检查规则设置是否正确。由于 Thin 不记录请求,因此我需要设置 nginx 日志,以显示哪些请求作为文件提供,哪些请求传递给 Thin。这可能吗?如果是这样,如何? logging nginx 3 个回答 Voted Shish 2012-06-22T00:19:19+08:002012-06-22T00:19:19+08:00 创建一个自定义日志格式,其中包括$upstream_response_time- 如果您的后端提供它,您应该得到几毫秒的时间来获得响应,如果 nginx 在内部提供它,您应该得到一个破折号 Best Answer Pothi Kalimuthu 2012-06-22T04:55:41+08:002012-06-22T04:55:41+08:00 根据您的配置,它可能很容易实现。这是我的解决方案... 服务器 { server_name 域名.com; 根/路径/到/文件; # 索引 index.php index.html; # 在 access.log 中记录所有请求 access_log /some/path/such/as/var/log/nginx/access.log; 地点 / { try_files $uri $uri @thin; } 位置@thin { # 将请求传递给 thin # proxy_pass http://thin; # 在 proxy-access.log 中代理特定的日志记录 access_log /some/path/such/as/var/log/nginx/proxy-access.log; } } 希望这可以帮助! Mxx 2012-06-21T20:56:15+08:002012-06-21T20:56:15+08:00 这是一个非常肮脏的 hack,但要让 Nginx 或 Thin 没有对这些文件的读取权限。:) 这样你就可以找出哪个出错了,从而读取/提供文件。 或者,您应该能够将自定义标头添加到提供静态文件的配置块。然后您将能够看到标题是否存在。
创建一个自定义日志格式,其中包括
$upstream_response_time
- 如果您的后端提供它,您应该得到几毫秒的时间来获得响应,如果 nginx 在内部提供它,您应该得到一个破折号根据您的配置,它可能很容易实现。这是我的解决方案...
希望这可以帮助!
这是一个非常肮脏的 hack,但要让 Nginx 或 Thin 没有对这些文件的读取权限。:) 这样你就可以找出哪个出错了,从而读取/提供文件。
或者,您应该能够将自定义标头添加到提供静态文件的配置块。然后您将能够看到标题是否存在。