Nginx/es: Difference between revisions

From Joomla! Documentation

FuzzyBot (talk | contribs)
Updating to match new version of source page
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 1: Line 1:
<noinclude><languages /></noinclude>
<noinclude><languages /></noinclude>
<div class="mw-translate-fuzzy">
[http://nginx.net/ nginx] es un servidor web ligero utilizado en alrededor de 13% de todos los servidores web del mundo[http://en.wikipedia.org/wiki/Nginx#Description]. Nginx es una mejor opción que Apache, a menos que tengas requerimientos específicos que exijan un servidor web mucho más pesado.
[http://nginx.net/ nginx] es un servidor web ligero utilizado en alrededor de 13% de todos los servidores web del mundo[http://en.wikipedia.org/wiki/Nginx#Description]. Nginx es una mejor opción que Apache, a menos que tengas requerimientos específicos que exijan un servidor web mucho más pesado.
</div>


<div class="mw-translate-fuzzy">
A continuación encontrarás las instrucciones para ejecutar Joomla! con [http://wiki.nginx.org/PHPFcgiExample nginx y PHP via FastCGI].
A continuación encontrarás las instrucciones para ejecutar Joomla! con [http://wiki.nginx.org/PHPFcgiExample nginx y PHP via FastCGI].
</div>


<div class="mw-translate-fuzzy">
== Instalar nginx ==
== Instalar nginx ==
</div>
<div class="mw-translate-fuzzy">
En Ubuntu, ejecuta <tt>aptitude install nginx</tt>. En otras distribuciones, ejecuta el administrador de paquetes correspondiente, o visita http://wiki.nginx.org/Install.
En Ubuntu, ejecuta <tt>aptitude install nginx</tt>. En otras distribuciones, ejecuta el administrador de paquetes correspondiente, o visita http://wiki.nginx.org/Install.
</div>


== Instalar PHP FastCGI ==  
== Instalar PHP FastCGI ==  
<div class="mw-translate-fuzzy">
Si usas Ubuntu, lee esta excelente página acerca de como [http://wiki.nginx.org/PHPFcgiExample configurar PHP y FastCGI para nginx].
Si usas Ubuntu, lee esta excelente página acerca de como [http://wiki.nginx.org/PHPFcgiExample configurar PHP y FastCGI para nginx].
</div>


<div class="mw-translate-fuzzy">
En Gentoo, PHP se ejecutará como un servicio FastCGI (fpm), de esa manera el servidor nginx ejecutará PHP como un proceso separado:
En Gentoo, PHP se ejecutará como un servicio FastCGI (fpm), de esa manera el servidor nginx ejecutará PHP como un proceso separado:
</div>
<pre>
<pre>
# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# emerge php
# emerge php
</pre>
</pre>
<div class="mw-translate-fuzzy">
Los parámetros por defecto de php-fpm funcionan de manera adecuada para la mayoría de servidores. Si necesitas configuraciones especiales, visita el  [http://php.net/manual/en/install.fpm.php sitio de PHP FPM].
Los parámetros por defecto de php-fpm funcionan de manera adecuada para la mayoría de servidores. Si necesitas configuraciones especiales, visita el  [http://php.net/manual/en/install.fpm.php sitio de PHP FPM].
</div>


== Configurar Nginx ==
== Configurar Nginx ==
<div class="mw-translate-fuzzy">
Los archivos de configuración de nginx se encuentran en:
Los archivos de configuración de nginx se encuentran en:
</div>
<div class="mw-translate-fuzzy">
* <tt>/etc/nginx/sites-available/</tt> en Ubuntu (para sitios ejecutándose en esa instancia de nginx)
* <tt>/etc/nginx/sites-available/</tt> en Ubuntu (para sitios ejecutándose en esa instancia de nginx)
</div>
<div class="mw-translate-fuzzy">
* <tt>/etc/nginx/nginx.conf</tt> en Gentoo y Raspbian (= Debian optimizado para Raspberry Pi)
* <tt>/etc/nginx/nginx.conf</tt> en Gentoo y Raspbian (= Debian optimizado para Raspberry Pi)
</div>


<div class="mw-translate-fuzzy">
Este es un ejemplo de archivo de configuración de nginx, joomla.conf, el cual puedes reutilizar en todos tus sitios que usen nginx.
Este es un ejemplo de archivo de configuración de nginx, joomla.conf, el cual puedes reutilizar en todos tus sitios que usen nginx.
</div>


<pre>
<pre>
server {
server {
        listen 80;
  listen 80;
        server_name YOUR_DOMAIN;
    server_name YOUR_DOMAIN;
        server_name_in_redirect off;
    server_name_in_redirect off;


        access_log /var/log/nginx/localhost.access_log;
    access_log /var/log/nginx/localhost.access_log;
        error_log /var/log/nginx/localhost.error_log info;
    error_log /var/log/nginx/localhost.error_log info;


        root PATH_ON_SERVER;
    root PATH_ON_SERVER;
        index index.php index.html index.htm default.html default.htm;
    index index.php index.html index.htm default.html default.htm;
        # Support Clean (aka Search Engine Friendly) URLs
    # Support Clean (aka Search Engine Friendly) URLs
        location / {
    location / {
                try_files $uri $uri/ /index.php?$args;
        try_files $uri $uri/ /index.php?$args;
        }
    }


        # add global x-content-type-options header
    # add global x-content-type-options header
        add_header X-Content-Type-Options nosniff;
    add_header X-Content-Type-Options nosniff;


        # deny running scripts inside writable directories
    # deny running scripts inside writable directories
        location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
        return 403;
                error_page 403 /403_error.html;
        error_page 403 /403_error.html;
        }
    }


        location ~ \.php$ {
    location ~ \.php$ {
            fastcgi_pass  127.0.0.1:9000;
      fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
      fastcgi_index index.php;
            include fastcgi_params;
      include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi.conf;
      include /etc/nginx/fastcgi.conf;
        }
    }


        # caching of files  
    # caching of files  
        location ~* \.(ico|pdf|flv)$ {
    location ~* \.(ico|pdf|flv)$ {
                expires 1y;
        expires 1y;
        }
    }


        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
                expires 14d;
        expires 14d;
        }
    }


}
}
Line 70: Line 92:


Presta atención a algunos detalles:
Presta atención a algunos detalles:
<div class="mw-translate-fuzzy">
# El parámetro <tt>fastcgi_pass</tt> tiene el valor 127.0.0.1:9000, el cual corresponde al puerto asignado a fpm para que 'escuche' o monitoree. Esto significa que puedes ejecutar los procesos de PHP en servidores separados. En Gentoo, puedes encontrar esta configuración en <tt>/etc/php/fpm-php5.3/php-fpm.conf/</tt>
# El parámetro <tt>fastcgi_pass</tt> tiene el valor 127.0.0.1:9000, el cual corresponde al puerto asignado a fpm para que 'escuche' o monitoree. Esto significa que puedes ejecutar los procesos de PHP en servidores separados. En Gentoo, puedes encontrar esta configuración en <tt>/etc/php/fpm-php5.3/php-fpm.conf/</tt>
</div>
# No olvides reemplazar los valores YOUR_DOMAIN & PATH_ON_SERVER por tu dominio y la ruta de Joomla en tu servidor.
# No olvides reemplazar los valores YOUR_DOMAIN & PATH_ON_SERVER por tu dominio y la ruta de Joomla en tu servidor.


<div class="mw-translate-fuzzy">
== Soporte GZip ==
== Soporte GZip ==
</div>
<div class="mw-translate-fuzzy">
Si necesitas soporte para compresión GZip, agrega la siguiente sección a la sección http del archivo de configuración principal de nginx:
Si necesitas soporte para compresión GZip, agrega la siguiente sección a la sección http del archivo de configuración principal de nginx:
</div>
<pre>
<pre>
        gzip on;
gzip on;
        gzip_http_version 1.1;
gzip_http_version 1.1;
        gzip_comp_level 6;
gzip_comp_level 6;
        gzip_min_length 1100;
gzip_min_length 1100;
        gzip_buffers 4 8k;
gzip_buffers 4 8k;
        gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
        gzip_proxied     any;
gzip_proxied any;
        gzip_disable     "MSIE [1-6]\.";
gzip_disable "MSIE [1-6]\.";
</pre>
</pre>


== Fuentes ==
== Fuentes ==
* [http://en.gentoo-wiki.com/wiki/Nginx Nginx in Gentoo]
* [https://wiki.gentoo.org/wiki/Nginx Nginx in Gentoo]
* [http://www.kevinworthington.com/nginx-for-windows/ Nginx for Windows]
* [https://kevinworthington.com/nginx-for-windows/ Nginx for Windows]
* [http://wiki.nginx.org/Install#Ubuntu_PPA Nginx in Ubuntu]
* [https://ubuntu.com/tutorials/install-and-configure-nginx#1-overview Nginx in Ubuntu]
* [http://www.debianadmin.com/howto-install-nginx-webserver-in-debian.html Nginx in Debian]
* [https://www.debianadmin.com/howto-install-nginx-webserver-in-debian.html Nginx in Debian]
* [http://php.net/manual/en/install.fpm.php PHP-FPM installation and configuration]
* [https://www.php.net/manual/en/install.fpm.php PHP-FPM installation and configuration]
* [http://wiki.nginx.org/HttpGzipModule GZip in Nginx]
* [https://docs.nginx.com/nginx/admin-guide/web-server/compression/ Compression and Decompression]
* [http://wiki.nginx.org/HttpRewriteModule Rewrite in Nginx]
* [https://www.nginx.com/blog/creating-nginx-rewrite-rules/ Creating NGINX Rewrite Rules]
* [http://nginx.org/en/docs/http/request_processing.html How nginx processes a request]
* [http://nginx.org/en/docs/http/request_processing.html How Nginx processes a request]


[[Category:Server configurations]]
[[Category:Server configurations]]

Revision as of 09:12, 16 August 2022

nginx es un servidor web ligero utilizado en alrededor de 13% de todos los servidores web del mundo[1]. Nginx es una mejor opción que Apache, a menos que tengas requerimientos específicos que exijan un servidor web mucho más pesado.

A continuación encontrarás las instrucciones para ejecutar Joomla! con nginx y PHP via FastCGI.

En Ubuntu, ejecuta aptitude install nginx. En otras distribuciones, ejecuta el administrador de paquetes correspondiente, o visita http://wiki.nginx.org/Install.

Instalar PHP FastCGI

Si usas Ubuntu, lee esta excelente página acerca de como configurar PHP y FastCGI para nginx.

En Gentoo, PHP se ejecutará como un servicio FastCGI (fpm), de esa manera el servidor nginx ejecutará PHP como un proceso separado:

# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# emerge php

Los parámetros por defecto de php-fpm funcionan de manera adecuada para la mayoría de servidores. Si necesitas configuraciones especiales, visita el sitio de PHP FPM.

Configurar Nginx

Los archivos de configuración de nginx se encuentran en:

  • /etc/nginx/sites-available/ en Ubuntu (para sitios ejecutándose en esa instancia de nginx)
  • /etc/nginx/nginx.conf en Gentoo y Raspbian (= Debian optimizado para Raspberry Pi)

Este es un ejemplo de archivo de configuración de nginx, joomla.conf, el cual puedes reutilizar en todos tus sitios que usen nginx.

server {
  listen 80;
    server_name YOUR_DOMAIN;
    server_name_in_redirect off;

    access_log /var/log/nginx/localhost.access_log;
    error_log /var/log/nginx/localhost.error_log info;

    root PATH_ON_SERVER;
    index index.php index.html index.htm default.html default.htm;
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # add global x-content-type-options header
    add_header X-Content-Type-Options nosniff;

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
        return 403;
        error_page 403 /403_error.html;
    }

    location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include /etc/nginx/fastcgi.conf;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
        expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
        expires 14d;
    }

}

Presta atención a algunos detalles:

  1. El parámetro fastcgi_pass tiene el valor 127.0.0.1:9000, el cual corresponde al puerto asignado a fpm para que 'escuche' o monitoree. Esto significa que puedes ejecutar los procesos de PHP en servidores separados. En Gentoo, puedes encontrar esta configuración en /etc/php/fpm-php5.3/php-fpm.conf/
  1. No olvides reemplazar los valores YOUR_DOMAIN & PATH_ON_SERVER por tu dominio y la ruta de Joomla en tu servidor.

Soporte GZip

Si necesitas soporte para compresión GZip, agrega la siguiente sección a la sección http del archivo de configuración principal de nginx:

gzip on;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";

Fuentes