Nginx loop de redirecionamento infinito

6

Por que o link está passando por um loop de redirecionamento infinito? Aqui está o meu arquivo conf nginx. O site é executado por um servidor nodejs na porta 8000 e o Apache serve o blog (wordpress) e o fórum (phpBB). O fórum está resolvendo muito bem, no link ...

 server {
        listen          80;
        server_name     www.compassionpit.org;
        rewrite         ^/(.*) http://www.compassionpit.com/$1  permanent;
    }


    server {
        listen       80;                # your server's public IP address
        server_name  www.compassionpit.com;
        index        index.php index.html;

        location ~ ^/$ {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location @blogphp {
            internal;
            root /opt/blog/;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
            fastcgi_index  index.php;
            fastcgi_pass   127.0.0.1:8080;
        }

        location ~ ^/(forum|blog)/($|.*\.php) {
            root /opt/;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_index  index.php;
            fastcgi_pass   127.0.0.1:8080;
        }

        location ~ ^/(forum|blog) {
            root /opt/;
            try_files $uri $uri/ @blogphp;
        }

        location ~ ^/(forum|blog)/ {
           root /opt/;
        }


        location @backend {
            internal;
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ~ / {
            root /opt/chat/static/;
            try_files $uri $uri/ @backend;
        }

    }
    
por Zack Burt 09.08.2011 / 20:43

2 respostas

2

Eu acho que você provavelmente tem o Wordpress configurado sem o subdomínio 'www' em seus URLs, e isso está em conflito com a forma como você configurou o Nginx (com server_name www.compassionpit.com ).

Então, quando você visita compassionpit.com/blog/ , o Nginx redireciona você para www.compassionpit.com/blog/ , este pedido, em seguida, atinge o Wordpress, que redireciona você de volta ao domínio nu compassionpit.com/blog/ .

    
por 22.08.2011 / 20:13
0

O Nginx possivelmente continua a processar as outras instruções if. Adicione um "break" no final das instruções if

location ~ ^/(forum|blog)/($|.*\.php) {
        root /opt/;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_index  index.php;
        fastcgi_pass   127.0.0.1:8080;
        break;
    }
    
por 20.08.2011 / 13:24