GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Nginx como proxy inverso para Apache en Ubuntu 15.10

Nginx o "motor-x " es un servidor web de alto rendimiento con bajo uso de memoria, creado por Igor Sysoev en 2002. Nginx no es solo un servidor web, puede usarse como un proxy inverso para muchos protocolos como HTTP, HTTPS, POP3, SMTP e IMAP y también como equilibrador de carga y caché HTTP.

Apache es el software de servidor web más popular mantenido por la comunidad de código abierto bajo Apache Software Foundation. Hay muchos módulos complementarios disponibles para apache, como la compatibilidad con WebDav o firewalls de aplicaciones web como mod_security, y es compatible con muchos lenguajes de programación web como Perl, Python, PHP a través de módulos nativos o mediante interfaces cgi, fcgi y FPM.

En este tutorial, instalaré y configuraré Nginx como un proxy inverso de almacenamiento en caché para un servidor web Apache en Ubuntu 15.10, Nginx se usa como front-end y Apache como back-end. Nginx se ejecutará en el puerto 80 para responder a las solicitudes de un usuario/navegador, la solicitud se reenviará al servidor apache que se ejecuta en el puerto 8080.

Paso 1 - Instalar Apache y PHP

Inicie sesión en su servidor ubuntu con SSH y conviértase en usuario root ejecutando:

sudo su

Luego instale apache con el comando apt-get:

apt-get install apache2

Una vez instalado apache, debemos instalar PHP como módulo de apache para este tutorial:

apt-get install php5 php5-mysql libapache2-mod-php5

Paso 2:configurar Apache y PHP

De forma predeterminada, apache escucha en el puerto 80. Tenemos que configurar apache para que se ejecute en el puerto 8080 para nuestra configuración de proxy, ya que nginx usará el puerto 80 más adelante.

Si desea cambiar el puerto para el servidor web apache, debe editar el archivo de configuración de apache "/etc/apache2/ports.conf", y luego continuar con la configuración del host virtual en "/etc/apache2/sites-disponible/ " directorio.

Primero cambie el puerto de apache a 8080 editando el archivo "ports.conf" con el editor vim:

vim /etc/apache2/ports.conf

En línea 5 , cambie el puerto 80 a 8080.

Listen 8080

Guardar y salir.

Ahora ve al directorio virtualhost y edita el archivo "000-default.conf":

cd sites-available/
vim 000-default.conf

Asegúrese de que su configuración sea la misma que se muestra a continuación:

<VirtualHost *:8080>

    ServerName www.reverse.com
    ServerAlias reverse.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Guardar y salir.

A continuación, pruebe la configuración y reinicie apache:

apachectl configtest
systemctl restart apache2

Finalmente verificamos que apache y php estén funcionando. Cree un nuevo archivo con el nombre "info.php" en el directorio "/var/www/html/".

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Visite su sitio www.reverse.com:8080/info.php .

El resultado debería ser similar a la captura de pantalla anterior.

Paso 3:instalar Nginx

Instale Nginx con el siguiente comando apt-get:

apt-get install nginx

Paso 4:configurar Nginx

Una vez que Nginx esté instalado, configure Nginx para que actúe como proxy inverso para el servidor web apache que se ejecuta en el puerto 8080.

Vaya al directorio de configuración de nginx y edite el archivo "nginx.conf":

cd /etc/nginx/
vim nginx.conf

Habilite la compresión Gzip para Nginx descomentando las líneas gzip:

        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

más importante es:

gzip en :para activar la compresión gzip.

tipos_gzip :es una lista de tipos MIME a los que desea convertir la compresión.

gzip_proxied cualquiera :es habilitar la compresión para la solicitud de proxy.

Justo debajo de la configuración de gzip, agregue esta configuración de caché de proxy:

        # Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;

El directorio para el caché del proxy es /var/cache.

niveles es una directiva que le dice a Nginx cómo se guarda el caché en el sistema de archivos.

clave_zona es solo un nombre de la zona de caché, puede elegirlo libremente, pero no agregue caracteres especiales o espacios en blanco en el nombre. Usaré el nombre "reverse_cache " aquí.

Guardar y Salir.

Ahora configuraremos un host virtual en el directorio "/etc/nginx/sites-disponible".

En este tutorial, crearé un nuevo archivo de configuración de virtualhost llamado "reverse.conf". Acabo de llegar al directorio y crear un nuevo archivo con vim:

cd /etc/nginx/sites-available
vim reverse.conf

Pegue la configuración a continuación:

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

    location ~ /\.ht {
        deny all;
    }
}

Guardar y salir.

Luego active la nueva configuración de virtualhost:

ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/

Finalmente probaremos la configuración de nginx y reiniciaremos nginx:

nginx -t
systemctl restart nginx

Nginx está configurado como proxy inverso ahora. Puedes probarlo con curl:

curl -I www.reverse.com

Control de caché:sin caché significa index.html y todos los archivos terminados en .html no se almacenarán en caché.

Otra prueba:

curl -I www.reverse.com/info.php

Caché X:HIT significa que la página está siendo servida por el caché de Nginx.

Paso 5:configurar el registro

En este paso, configuraré apache para registrar la IP real del visitante en lugar de la IP local.

Instale el módulo de apache "libapache2-mod-rpaf" y edite el archivo de configuración del módulo:

sudo apt-get install libapache2-mod-rpaf
cd /etc/apache2/mods-available/
vim rpaf.conf

Agregue la IP del servidor a la línea 10 . Mi servidor tiene la IP:192.168.1.108.

RPAFproxy_ips 127.0.0.1 192.168.1.108 ::1

Guardar y salir.

Ahora reinicie Apache:

systemctl restart apache2

Pruebe rpaf viendo el registro de acceso de apache con el comando tail:

tail -f /var/log/apache2/access.log

Eso es todo.

Nginx se instala como proxy inverso frente al servidor web Apache. Si un visitante solicita un archivo php, la solicitud se pasará a apache en el puerto 8080 y podrá ver la IP real del visitante en el archivo de registro de apache.

Conclusión

Nginx es un servidor web rápido y popular con poco uso de memoria que puede actuar como servidor web y proxy inverso para el protocolo HTTP y HTTPS. El proxy inverso de Nginx para apache es una configuración que usa Nginx como front-end y apache como back-end. Nginx maneja la solicitud entrante del navegador y la pasa al backend de apache. En este tutorial, hemos configurado una configuración para nginx como caché http que almacena en caché las solicitudes de archivos PHP y las imágenes.


Ubuntu
  1. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  2. Cómo instalar Odoo 10 en Ubuntu 16.04 con Apache como proxy inverso

  3. Cómo instalar Odoo 11 en Ubuntu 16.04 con Nginx como proxy inverso

  4. Cómo instalar Odoo 12 en Ubuntu 18.04 con Apache como proxy inverso

  5. Cómo instalar Odoo 14 en Ubuntu 20.04 con Apache como proxy inverso

Cómo instalar nginx como proxy inverso para Apache en Ubuntu 16.04

Cómo instalar Rocket.chat con proxy inverso nginx en Ubuntu 20.04

Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Cómo instalar Nginx en Ubuntu 15.04

Cómo configurar Nginx como proxy inverso para Apache en Ubuntu 18.04 VPS

Cómo instalar NGINX como proxy inverso para Apache en Ubuntu 18.04