实验项目好极了!我决定尝试使用 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 的错误。奇怪的调试日志激起了我的怀疑。

  • 其次,眼光要更高:

没有必要查看堆栈的中间。我应该寻找请求,并确保有人拨打电话。

  • 第三,记录你在做什么:

我明显的困惑源于我有一些奇怪的代理魔力。如果我花时间记住我在服务器上所做的一切不寻常的事情,我可能会想到早点检查我的防火墙设置。


我获得风滚草徽章的机会就这样消失了

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top