Servidor web · 3 min read · Feb 01, 2026

Nginx Catch-All Host Como Front End Para Apache Para ISPConfig 2 En CentOS 5

Nginx Catch-All Host Como Front End Para Apache Para ISPConfig 2 En CentOS 5

Nginx (pronunciado “engine X”) es un servidor web/proxy inverso ligero y de alto rendimiento y proxy de correo electrónico (IMAP/POP3), licenciado bajo una licencia similar a BSD. Funciona en UNIX, GNU/Linux, variantes de BSD, Mac OS X, Solaris y Microsoft Windows. El rendimiento de Apache también es generalmente muy bueno. Sin embargo, en un entorno con recursos limitados, Apache no necesariamente proporciona un rendimiento óptimo o una utilización de recursos adecuada. Uno de los enfoques de “mejores prácticas” para reducir la carga en Apache es permitir que un servidor web más ligero se encargue de servir los archivos estáticos del sitio (imágenes, javascript, css, etc.), dejando el trabajo pesado de servir el contenido dinámico a Apache. Este tutorial muestra cómo puedes configurar Nginx como front end para Apache para ISPConfig 2 en CentOS 5.x.

¡No emito ninguna garantía de que esto funcione para ti!

Configurar ISPConfig 2

Primero, necesitas cambiar el archivo de configuración de ISPConfig 2 de la siguiente manera:

cp -v /root/ispconfig/scripts/lib/config.lib.php /root/ispconfig/scripts/lib/config.lib.php.orig  
vi /root/ispconfig/scripts/lib/config.lib.php

Encuentra la línea número 1283 y cambia el puerto 80 a 8080:

$web_port = ":80";
$web_port = ":8080";

Encuentra los números de línea 2088 y 2089 y cambia el puerto 80 a 8080 también:

  $test_vhost = "\n".'
ServerName www.test.tld:80
ServerAdmin [email protected]
DocumentRoot /home
'.$web_httpd_include.'
';
  $test_vhost = "\n".'
ServerName www.test.tld:8080
ServerAdmin [email protected]
DocumentRoot /home
'.$web_httpd_include.'
';

Si prefieres un método mucho más simple, usa:

sed -ie 's/:80/:8080/g' /root/ispconfig/scripts/lib/config.lib.php

Configurar Apache

Cambia el puerto de escucha predeterminado en Apache de 80 a 8080.

vi /etc/httpd/conf/httpd.conf
Listen 80
UseCanonicalName Off
Listen 8080
UseCanonicalName On

Instalar Nginx

Para instalar el servidor web nginx:

yum install httpd-devel pcre perl pcre-devel zlib zlib-devel  
cd /tmp  
wget http://download.fedora.redhat.com/pub/epel/5/i386/nginx-0.6.39-5.el5.i386.rpm  
rpm -ivh nginx-0.6.39-5.el5.i386.rpm

Nota: si deseas instalar la última versión de nginx, consulta este enlace: Instalar Nginx En CentOS 5.5 Con SSL, PCRE, GeoIP, Zlib, Gzip Y Soporte DAV.

Y ahora, debes configurar nginx.

vi /etc/nginx/nginx.conf
user nginx;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
#----------------------------------------------------------------------
# Módulo de Eventos 
#
# http://wiki.codemongers.com/NginxEventsModule
#
#----------------------------------------------------------------------
events {
    worker_connections 1024;
    use epoll;
}
#----------------------------------------------------------------------
# Módulo HTTP Core
#
# http://wiki.codemongers.com/NginxHttpCoreModule 
#
#----------------------------------------------------------------------
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    
    log_format main '$remote_addr - $remote_user [$time_local] $request '
    "$status" $body_bytes_sent "$http_referer" '
    "$http_user_agent" "$http_x_forwarded_for";
    
    access_log /var/log/nginx/access.log main;
    
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    
    keepalive_timeout 65;
    
    gzip on;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_buffers 16 8k;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    
    # 
    proxy_temp_path /var/cache/nginx/temp;
    proxy_cache_path /var/cache/nginx/cached levels=1:2 keys_zone=global:60m inactive=15m max_size=1G;
    proxy_cache_valid    200 302 10m;
    proxy_cache_valid    301 1h;
    proxy_cache_valid    404 3m;    
    proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; 
    proxy_cache_key "$scheme$host$request_uri $cookie_user";
    #
    
    upstream apache {
    server PLACE-IP-ADDRESS-OF-YOUR-SERVER-HERE:8080;
    }
    ###########################################################
    #
    # El servidor predeterminado
    #
    server {
    
        proxy_cache global;
        
        listen 80;
        server_name _;
        server_name_in_redirect off;
        resolver 127.0.0.1;
        server_tokens off;
        
        if ($host ~* ^(www\.)(.+)) {
            set $rawdomain $2;
            rewrite ^/(.*)$ http://$rawdomain/$1 permanent;
        }
        
        client_max_body_size 30m;
        client_body_buffer_size 256k;
        
        location / {
        
        if (-d $request_filename) {
            rewrite ^/(.+[^/])$ http://$host/$1/ permanent;
        }
        
        proxy_pass http://apache;
        proxy_redirect off;
        proxy_pass_header Set-Cookie;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        proxy_connect_timeout 120;
        proxy_send_timeout 120;
        proxy_read_timeout 120;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        
        root /var/www/www.$host/web;
            index index.php index.html index.htm default.htm default.html;
        }
        
        error_page 404 /404.html;
        location = /404.html {
            root /usr/share/nginx/html;
        }
        
        # redirigir las páginas de error del servidor a la página estática /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
        
        location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
            root /var/www/www.$host/web; 
            access_log off;
            proxy_cache_valid 200 10h;
            expires 3d;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

Nota importante: No olvides reemplazar la DIRECCIÓN IP de tu servidor Apache en este archivo de configuración.

Reiniciar servicios requeridos y disfrutar!

Reinicia los servicios de ISPConfig y Apache y comienza el servicio de nginx.

service httpd restart  
service ispconfig_server restart   
service nginx start

Pruebas

Primero, verifica el archivo de host virtual de ispconfig:

cat /etc/httpd/conf/vhosts/Vhosts_ispconfig.conf

Debe verse así:

######################################
# Vhost: www.example.com:8080
######################################
#
#
ServerName www.example.com:8080
ServerAdmin [email protected]
DocumentRoot /var/www/web100/web
...

En segundo lugar, verifica los archivos de registro y error de nginx.

tail -f /var/log/nginx/access.log  
tail -f /var/log/nginx/error.log

Reinicia el servidor si es necesario.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.