Nginx 0.7.43 para pasar proxy de un sitio de Wordpress a Apache 2.4 + PHP 5.6

Nginx 0.7.43 para pasar proxy de un sitio de Wordpress a Apache 2.4 + PHP 5.6

Estoy intentando utilizar un nginx existente que se ejecuta en el puerto 80, para pasar por proxy a Apache que sirve un sitio web de Wordpress.

Se agregó la sección nginx (algunas pruebas comentadas se dejaron intencionalmente, probé tantas versiones, lo siento si se ve mal):

upstream wordpress {
    server 127.0.0.1:5000;
}

server {
    server_name media.raw-news.net;
    access_log /home/plumi/PLUMI/plumi.app/var/log/wordpress-access.log;
    error_log /home/plumi/PLUMI/plumi.app/var/log/wordpress-error.log;

    #root /usr/local/apache2/htdocs/;

    location / {
        proxy_redirect off;
        proxy_pass http://wordpress;
        proxy_connect_timeout 75;
        proxy_read_timeout 185;
    }

 location ~ .*\\.(php)$ {

  proxy_pass         http://wordpress;
  proxy_redirect     off;

  proxy_set_header   Host             $host;
  proxy_set_header   X-Real-IP        $remote_addr;
  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

  client_max_body_size       10m;
  client_body_buffer_size    128k;

  proxy_connect_timeout      90;
  proxy_send_timeout         90;
  proxy_read_timeout         90;

  proxy_buffer_size          4k;
  proxy_buffers              4 32k;
  proxy_busy_buffers_size    64k;
  proxy_temp_file_write_size 64k;
 }

}

Mi Apache se ejecuta en el puerto 5000 con PHP habilitado (solo elementos de PHP relevantes):

LoadModule php5_module        modules/libphp5.so

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

AddType text/html .php
AddHandler php5-script  .php

El efecto en este momento es que:

Chrome: se muestra el sitio web de Wordpress, pero parece que no se ejecuta ningún código PHP. Solo puedo ver la parte HTML.

Firefox: navegar por el sitio de Wordpress provoca una redirección en 127.0.0.1...

Safari: ¡Funciona! se visualiza...

Curiosamente, en todos los navegadores si navegohttp://media.example.net/wp-admine inicie sesión. Puedo ingresar al Panel y todo se muestra perfectamente.

Todas las imágenes están ahí, el código PHP se ejecuta... ¡pero sólo después de iniciar sesión en el Panel!

Que me estoy perdiendo aqui ?

No creé ningún VirtualHost en Apache, es un servidor Apache 2.4 simple con el sitio de Wordpress dentro del DocumentRoot predeterminado.

No puedo migrar a una versión más nueva de nginx porque está ejecutando un sitio web de producción.

La migración ya está planificada cuando Plumi lance oficialmente la versión 4.5.2 en Debian 8.

¿Existe alguna configuración preferida/que funcione para pasar correctamente todo el contenido de Wordpress a mi Apache sin tener que redirigir a 127.0.0.1, por ejemplo, y ejecutar correctamente el código PHP en Apache?

Gracias !

Respuesta1

Es posible que desee configurar (y utilizar) encabezados adicionales para enviar proxy a la instancia de Apache, como estos:

proxy_set_header    X-Real-IP         $remote_addr;
proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;

La mayoría de los servidores (incluidos Apache y PHP) funcionarán con uno o más de estos, además $Host(para saber qué sitio se solicita).

Estedeberíaluego permita que PHP de Apache reconozca los datos adicionales y esencialmente diga "Oh, esto NO se originó en localhost, su origen real es de $remote_addr". ( $remote_addres una variable que indica la dirección IP real de la fuente real y X-Forwarded-Forfunciona de manera similar).

información relacionada