nginx verniz hhvm

3

Eu tenho nginx no front end interpretando ssl e redirecionando todo o tráfego não https para https:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://www.example.com$request_uri;
}

de lá, o próximo bloco de servidores interpreta ssl e passa para o verniz:

server {
    listen 443 ssl spdy;
    server_name example.com www.example.com;
    ...<ssl stuff>...

    location / {
        proxy_pass http://127.0.0.1:6081;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header Host $host;
        proxy_redirect off;
    }
}

Eu tirei tudo do verniz para ajudar a depurar meu problema e agora ele só retorna ao nginx na porta 8080

backend default {
.host = "127.0.0.1";
.port = "8080";
}

de volta ao bloco do servidor nginx 8080:

server {
   listen       8080;
   server_name  example.com www.example.com;
   ...<access logs root index stuff>...

   location ~ \.php$ {
       try_files $uri =404;
       include fastcgi_params;
       fastcgi_pass php;
   }
}

a variável php aponta para um upstream para hhvm em 127.0.0.1:hhvmport com um fallback para 127.0.0.1:php-fpmport.

Quando tento acessar o admin do wordpress, recebo um loop de redirecionamento. Eu não tenho certeza se este é um problema de wordpress ou configuração do servidor porque quando eu remover o hhvm do upstream e ir diretamente para php-fmp não tenho nenhum problema. também curl -I link mostra um redirecionamento 302 para link em vez de 301. Além disso, se eu tirar o verniz da imagem completamente, hhvm permitir o acesso ao wp-admin muito bem. Os cabeçalhos são adicionados (X-Forwarded etc ..) confundindo hhvm e esperando que o tráfego venha de 443?

/var/log/hhvm/error.log não está me mostrando nada, exceto o jit sendo criado Ligado redirecionamento log in nginx e não está me ajudando também. Não estava esperando, mas valeu a pena.

Realmente confuso sobre o que está acontecendo aqui. Eu não tinha certeza se isso pertencia à seção wordpress, já que remover o verniz corrige o problema ou ignorar o hhvm na seção admin do wordpress também corrige o problema, parece mais um problema de configuração. Qualquer ajuda seria muito apreciada. Rodando no Ubuntu 14.04, se isso tiver algum significado.

    
por user44176 23.02.2015 / 03:13

2 respostas

1

Acontece que eu precisava adicionar:

fastcgi_param HTTPS on;

no bloco de localização passando para o php e tudo está funcionando como pretendido.

    
por 23.02.2015 / 23:53
1

Isso pode acontecer quando você configura o WordPress para redirecionar todo o tráfego inseguro para um URL seguro (por exemplo, por meio de .htaccess ). O que acontece é que o primeiro pedido chega, é removido dos cabeçalhos SSL e atinge o WordPress, que percebe que a conexão não é segura e, consequentemente, envia um redirecionamento para o cliente.

Se você não acha que o WordPress está fazendo isso, tente com algum PHP simples (algo realmente direto como <?php phpinfo(); ?> ). Se o fizer com o PHP simples, a melhor maneira de depurar isso tende a ser farejar o tráfego entre o Ponto A e o Ponto B (para ver onde a desconexão entre o tráfego esperado e a realidade está aparecendo), ou ir diretamente para o interessante portas (por exemplo, através da sintaxe http://host:port/ URI, modificando seu arquivo "hosts" e / ou usando o encaminhamento de porta) e subindo o serviço de uma pilha por vez até obter dados inconsistentes com o que você espera.

    
por 23.02.2015 / 06:43