Generalidades
¡POSIBLE INFORMACIÓN DESACTUALIZADA!
DreamHost no admite directamente ninguna de las funciones descritas en esta página y no es responsable de mantener este contenido actualizado o preciso. ¡Úsalo bajo tu propio riesgo!
Muchas aplicaciones web como WordPress y MediaWiki están configuradas originalmente para funcionar con Apache. Dado que los archivos .htaccess no son compatibles con Nginx, existen algunos ajustes que puedes realizar para que tus aplicaciones funcionen correctamente. En todos los ejemplos siguientes, asegúrate de seguir estos pasos.
En los siguientes ejemplos, username sería tu usuario Shell y example.com tu sitio web.
Pasos de configuración
- Ve la artículo Configuraciones de archivo local para crear tu directorio /nginx/example.com.
- Crea tu archivo .conf en este directorio /nginx/example.com.
El archivo .conf puede tener cualquier nombre. Solo necesita terminar en .conf.
- Agrega contenido al archivo .conf.
- Recarga Nginx navegando a la página VPS o Dedicado.
- Da clic en el botón Reload HTTP.
- Espera 5 minutos para que reconstruya el archivo de configuración.
También puedes recargar Nginx vía SSH.
Una lista de ejemplos para varias aplicaciones web pueden ser encontradas aquí:
WordPress
Crea un archivo wordpress.conf en tu directorio /home/username/nginx/example.com/.
Aquí es donde pondrás todas tus reglas de configuración de Nginx.
Si vas a compartir esta configuración de WordPress en varios sitios, crea un archivo predeterminado. Luego, crea enlaces simbólicos para cada uno de tus sitios. Por ejemplo:
- Crea un directorio predeterminado para tu archivo de WordPress:
[server]$ mkdir -p /home/username/nginx/default-wp/
- En este directorio /default-wp, crea el archivo wordpress.conf. Ve el artículo 'Crear y editar un archivo a través de SSH' para más instrucciones sobre crear el archivo.
[server]$ nano /home/username/nginx/default-wp/wordpress.conf
- Guarda y cierra el archivo para regresar a tu shell.
- Crea enlaces simbólicos o symlinks desde este directorio, para cada uno de los directorios de configuración de tus sitios:
[server]$ ln -s /home/username/nginx/default-wp/ /home/username/nginx/example.com [server]$ ln -s /home/username/nginx/default-wp/ /home/username/nginx/example2.com
Permalinks o enlaces permanentes
El conjunto más básico de reglas de WordPress que lo ponen en funcionamiento de inmediato son estos:
####################### # Permalinks if (!-e $request_filename) { rewrite ^.*$ /index.php last; }
Esto pone en marcha toda la funcionalidad básica de WordPress en términos de enlaces permanentes.
Un enfoque alternativo, que no usa 'if', es el siguiente:
####################### # Permalinks try_files $uri $uri/ /index.php?$args;
Multisitio
Si usas Multisitios, necesitas reglas un poco más avanzadas:
###################### # Permalinks if (!-e $request_filename) { rewrite ^/files(.*) /wp-includes/ms-files.php?file=$1 last; rewrite ^(/[^/]+)?(/wp-.*) $2 last; rewrite ^(/[^/]+)?(/.*.php) $2 last; rewrite ^.*$ /index.php last; }
Esto proporciona una funcionalidad básica para Multisite.
W3 Total Cache
El plugin W3 Total Cache para WordPress reconoce automáticamente que se está ejecutando bajo Nginx y crea un archivo de configuración Nginx predeterminado que puedes copiar en tu directorio /nginx/<domain name>/.
WP Super Cache
Si estás usando el plugin WP Super Cache, usa lo siguiente en lugar de las reglas de enlace permanente anteriores:
####################### # WP Super Cache # if the requested file exists, return it immediately if (-f $request_filename) { break; } set $supercache_file ''; set $supercache_uri $request_uri; if ($request_method = POST) { set $supercache_uri ''; } # Using pretty permalinks, so bypass the cache for any query string if ($query_string) { set $supercache_uri ''; } if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) { set $supercache_uri ''; } # if we haven't bypassed the cache, specify our supercache file if ($supercache_uri ~ ^(.+)$) { set $supercache_file /wp-content/cache/supercache/$http_host$1/index.html; } # only rewrite to the supercache file if it actually exists if (-f $document_root$supercache_file) { rewrite ^(.*)$ $supercache_file break; } # all other requests go to WordPress if (!-e $request_filename) { rewrite ^.*$ /index.php last; }
Funcionarlidad de búsqueda de Nginx
Desafortunadamente, esta configuración actualmente hace que las búsquedas de sitios que contienen espacios se rompan. Con Apache, cuando buscas "alguna cosa" que se convierte en "search/node/alguna+cosa". Cuando esto es procesado por nginx, el "+" se codifica para que termine con "search/node/alguna%20cosa". Por lo tanto, tu búsqueda termina buscando la cadena "alguna+cosa" en lugar de "Alguna cosa". Actualmente no hay soluciones alternativas conocidas que estén por venir.