在 nGinx 中调试会产生 1 行和无限的挫败感 - 如何调试调试器
题
实验项目好极了!我决定尝试使用 Facebook 的新功能来建立我的博客 hhvm-fastcgi 和WordPress。按照说明并使用以下 nGnix 配置:
server {
listen *:80 default;
server_name _;
access_log /home/blogs/logs/nginx/access.log;
error_log /home/blogs/logs/nginx/error.log debug;
location / {
deny all;
}
}
server {
listen *:80;
server_name www.site.com;
root /home/blogs/wordpress/;
index index.html index.php index.htm;
access_log /home/blogs/logs/nginx/site/access.log main;
error_log /home/blogs/logs/nginx/site/error.log debug;
# proxy_redirect off;
set $myuri $request_uri;
rewrite ^/wp-admin\/a$ /wp-admin/index.php;
if (!-e $request_filename) {
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}
# Try MemCached First
location / {
set $memcached_key "$uri?$args";
memcached_pass 127.0.0.1:11211;
error_page 404 405 502 504 = @fallback;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/blogs/wordpress$fastcgi_script_name;
include fastcgi_params;
}
location @fallback {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
如果可行的话那就太简单了。点击该网站只会导致我的浏览器挂起并最终放弃,但调试日志(来自 /home/blogs/logs/nginx/error.log
作为 /home/blogs/logs/nginx/site/error.log
只是空白)仅产生一行:
2014/01/03 19:20:35 [debug] 8536#0: epoll add event: fd:11 op:1 ev:00000001
我猜测薄弱环节是 nGinx。
尝试从受限域访问该站点,会按预期生成 403,并且调试日志实际工作。
我的问题不是如何让我的设置工作,而是 为什么 该设置未进行调试。一个简单的 fuser
告诉我嘻哈 是 运行在 9000 上。我觉得如果我知道出了什么问题,我就能取得一些进展。
我对自己在 Stackoverflow 上提出的问题非常在意;我见过人们被撕裂,坦率地说,这很可怕。我意识到最近还有另一个类似的问题: HHVM 与 Nginx fastcgi 无法正常工作 但考虑到我们的配置并不完全相同,而且我的问题更多是关于调试日志(尽管很短),我认为我的情况值得提出另一个问题。
笔记:
按权利标记应该是 hhvm-fastcgi
, ,但我没有代表将其创建为标签。
解决方案
哇。只是哇。
事实证明,在与此斗争了一段时间之后 太长了, ,原来是我的防火墙阻止了端口 80。为什么我能够调用 403?我偶尔会通过服务器运行代理,因此我测试的另一个域被视为内部请求。
我猜这个代理混合是导致错误日志中出现任何内容的原因。
尽管这种混淆非常令人尴尬,但我还是要保留这个问题,因为我从这次经历中吸取了一些东西。
- 首先,不要指手画脚:
我立即假设因为没有其他东西可以被调用,所以这是 nginx 的错误。奇怪的调试日志激起了我的怀疑。
- 其次,眼光要更高:
没有必要查看堆栈的中间。我应该寻找请求,并确保有人拨打电话。
- 第三,记录你在做什么:
我明显的困惑源于我有一些奇怪的代理魔力。如果我花时间记住我在服务器上所做的一切不寻常的事情,我可能会想到早点检查我的防火墙设置。
我获得风滚草徽章的机会就这样消失了