Configuraciones de aplicación web Nginx

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

  1. Dirígete la artículo Configuraciones de archivo local para crear tu directorio /nginx/example.com.
  2. Crea tu archivo .conf en este directorio /nginx/example.com.

    El archivo .conf puede tener cualquier nombre. Solo necesita terminar en .conf.

  3. Agrega contenido al archivo .conf.
  4. Recarga Nginx navegando a la página Servidores.
  5. Haz clic en el botón de 'tres puntos verticales' a la derecha del servidor que deseas reiniciar.
  6. Da clic en el botón Recargar HTTP.
  7. 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:

  1. Crea un directorio predeterminado para tu archivo de WordPress:
    [server]$ mkdir -p /home/username/nginx/default-wp/
    
  2. 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
  3. Guarda y cierra el archivo para regresar a tu shell.
  4. 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.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?