Tengo dos problemas pero creo que están relacionados. Los subdirectorios como /wp-admin, /blog devuelven 404, por lo tanto, los enlaces permanentes no funcionan porque siguen /blog/category1/page.php

Mi configuración:

Tengo un servidor 192.168.1.4 que ejecuta nginx. En otro servidor, 192.168.1.1 tengo un servidor web apache que usa virtualhosts que aloja mi sitio de wordpress. La configuración funciona bien sin nginx, pero cuando enciendo nginx tengo algunos problemas.

Nginx no funcionará con enlaces permanentes. He usado default, así que ahora es como: http://www.mywebsite.co.uk/?page_id=90 que funciona bien (siempre que no esté en el subdirectorio).

Todo en el subdirectorio (no en la raíz) se rompe. Incluidas las páginas de administración http://www.mywebsite.co.uk/wp-admin o (antes de desactivar los enlaces permanentes) http://www.mywebsite.co.uk/blog. Todos van a 404, específicamente: 404 Not Found nginx/1.4.6 (Ubuntu)

Aquí está mi configuración:

server {
   server_name mywebsite.co.uk www.mywebsite.co.uk;
   location / {
        index index.php;
        proxy_pass http://192.168.1.1$request_uri;

        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;

        try_files $uri $uri/ =404;
        #try_files $uri $uri/ /index.php?$args; #not working, error: rewrute or internal redirection cycle while interally redirecting to index.php
   }
}

Como referencia, aquí están mis enlaces permanentes: /blog/%category%/%postname%/

Actualizar

Intenté agregar esto a mi configuración:

server {
    ... config above ...
   location /wp-admin/ {
       index index.php
       try_files $uri $uri/ /wp-admin/index.php?$args;
       proxy_pass http://192.168.1.1$request_uri; 
       proxy_set_header Host $host; 
    }
}

Esto recupera un error en el registro:

rewrite or internal redirection cycle while internally redirecting to "/wp-admin/index.php", client: xxxxx, server: mydomain.co.uk`
1
boywonder 28 abr. 2017 a las 22:17

3 respuestas

La mejor respuesta

Tienes partes de una configuración funcional. El propósito de nginx en su configuración, es invertir el proxy al servidor Apache. Las index y try_files son inapropiadas en este caso. Tratar:

server {
    server_name mywebsite.co.uk www.mywebsite.co.uk;
    location / {
        proxy_pass http://192.168.1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
   }
}
3
Richard Smith 28 abr. 2017 a las 20:25

¿Por qué no quieres probar wordpress sin apache? la configuración de trabajo sería así:

server {
    listen 80;    
    server_name site.com;
    root /home/www/site.com;

    access_log /var/log/nginx/log;
    error_log /var/log/nginx/error.log;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    # SECURITY : Deny all attempts to access PHP Files in the uploads directory
    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    }

    location = /favicon.ico { log_not_found off; access_log off; }

    location = /robots.txt {allow all; log_not_found off; access_log off; }

    error_page 404 /404.html;

    location ~ /\. { deny all; }

    location ~* ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log off; 
        log_not_found off; 
        expires 30d;
    }
}
0
alpi 29 abr. 2017 a las 00:15

Es posible que pueda obtener su respuesta aquí Configuración NGINX definitiva para Wordpress »www .geekytuts.net

0
Jean Carfantan 29 abr. 2017 a las 07:38