douzhunlan5930 2009-08-08 02:16
浏览 67
已采纳

如何只为某些网址设置nginx + php-fpm + wordpress?

I'm trying to get nginx + php-fpm +wordpress to serve some pages from my site while acting as a proxy to other pages.

ie:

host/foo -> proxy to another www server

host/bar -> wordpress (via fpm)

the proxy part works fine, but the nginx -> wordpress part just keeps redirecting to the root page.

When i strace the php-fpm process, i see the hits coming in and wordpress actually does it's think and loads all the content, but at the last second it just redirects back to the root page.

Can't find anything on google as to how to see the incoming fastcgi params on the php side. guessing something is wrong in the headers being sent from nginx, but I have no idea how to see what all is being sent. (strace not super-helpful here since it only gives the first few bytes)

if I try it via telnet and type:

GET / HTTP/1.0 <CR><CR>

i get the correct content as you would expect (ie: doesn't redirect). but from a browser it's getting redirected.

  • 写回答

1条回答 默认 最新

  • dozan0001 2012-06-17 20:30
    关注

    Adding the following under your server settings

    # proxy the page to Apache listening on 127.0.0.1:80
    location ^~ /foo {
        proxy_pass   http://127.0.0.1;
    }
    
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ /bar/.*\.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?