Directorios virtuales

Un directorio virtual es un directorio que puede no encontrarse físicamente en el directorio raíz, por ejemplo C:\Inetpub\wwwroot, refiriéndonos a Windows, pero que puede ser accedido por medio del servidor web como si estuviera físicamente en el directorio raíz.

Para lograr esto hacemos uso de un alias al cual asociamos una ruta especifica en disco  con lo que se conseguirá acceso al directorio especificado en dicha ruta.
tanto IIS como apache hace uso de directorios virtuales para realizar publicaciones web sin tener que ubicar físicamente un directorio particular o raíz con esto me refiero que basta con mapear su ubicación con respecto a la raíz y asociar un alias para tener un contenido web completamente accesible.
tanto apache como IIS hacen uso de un nombre Ficticio (alias) para referirse a una ubicación real.

 
Como se configuran en apache.

nos ubicamos en la siguiente ruta

nano /etc/apache2/httpd.conf

una vez allí ingresamos las siguientes líneas

Alias /anime   /home/anderson/Desktop

<Directory  /home/anderson/Desktop>

Order allow,deny

Allow from all

</Directory>

De esta forma ya tenemos publicada nuestra carpeta y su contenido como se muestra a continuación.

 

Oksoft.es 0013

 

Como se configura en Windows.

 

Bueno como ya es sabido en Windows el mismo proceso lo realizamos de forma grafica como se describe a continuación.

 

Primero damos clic derecho sobre sitio al cual queremos añadir otro directorio, y seleccionamos nuevo directorio virtual como se muestra en la imagen.

Oksoft.es 0014

Inmediatamente se no inicia el asistente al cual le damos siguiente para continuar.

Oksoft.es 0015

Acá especificamos el alias con el cual vamos a identificar ese directorio.

Oksoft.es 0016

y especificamos la ruta donde se encuentra el directorio que queremos virtualizar

Oksoft.es 0017

Determinamos los permisos de acceso

Oksoft.es 0018

y finalizamos.

Oksoft.es 0019

Para visualizar si todo a salido bien damos clic sobre el sitio y se nos tiene que mostrar de esta forma.

 Oksoft.es 0022

Para accederlo desde el navegador se tiene que colocar el sitio mas el alias de la carpeta que se virtualizo, como se muestra a continuación.

Oksoft.es 0021

 

Como hemos podido ver Linux es mucho mas flexible a al hora de virtualizar un directorio, ya que este no requiere que necesariamente se desprenda de un sitio, como pasa con Windows, pero como siempre Windows tiene la ventaja de ser grafico y por ende mas practico.

Proxy inverso con nginx y apache

 

todos sabemos  y no es un secreto que un servidor proxy inverso es un intermediario entre el trafico entrante de internet y nuestros servidores web, con esto me refiero que cada solicitud que se realice a nuestros servidores web debe pasar primero por nuestro servidor proxy, el cual  realiza una petición a uno de los servidores en forma aleatoria, si estamos publicando el mismo contenido en mas de un servido (balanceo de carga) , o si simplemente contamos con un servidor como en mi caso que trabajar con dominios virtuales en apache. en cualquiera de las dos situaciones  el que presenta los datos solicitados al usuario es el servidor proxy.

uno de los grande beneficios de contar con un servidor proxy inverso es el de las seguridad, dado que el usuario que realiza una solicitud web no interactúa directamente con los servidores web.

 

como instalar nginx

apt-get install nginx

una vez intalado

vamos al archivo de configuracion

nano /etc/nginx/nginx.conf

y modificamos el archivo por este.

 

# smart default nginx (Ubuntu 9.04)

user                www-data www-data;
worker_processes    1;

error_log           /var/log/nginx/error.log warn;
pid                 /var/run/nginx.pid;

events {
    worker_connections  1024;
    use epoll;
}

http {
    # allow long server names
    server_names_hash_bucket_size 64;

    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;

    # spool uploads to disk instead of clobbering downstream servers
    client_body_temp_path /var/spool/nginx-client-body 1 2;
    client_max_body_size 32m;
    client_body_buffer_size    128k;

    server_tokens       off;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         off;

    keepalive_timeout   5;

    ## Compression
    gzip on;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_min_length  1100;
    gzip_buffers 16 8k;
    gzip_types text/plain text/html text/css application/x-javascript \
        text/xml application/xml application/xml+rss text/javascript \
        image/gif image/jpeg image/png;
    # Some version of IE 6 don't handle compression well on some mime-types,
    # so just disable for them
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    # Set a vary header so downstream proxies don't send cached gzipped
    # content to IE6
    gzip_vary on;

    # proxy settings
    proxy_redirect     off;

    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_max_temp_file_size 0;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;

    include             /etc/nginx/sites-enabled/*;
    include 		/etc/nginx/conf.d/*.conf;

}

ahora configuramos  nginx para entrelazarlo con  el sitio de apache  que queremos publicar, en caso de tener varios tenemos que crear varios sites como los que se muestran a continuacion.

nota: site es el nombre que le he querido poner a mi sitio.

primero vamos a siguiente ruta

cd  /etc/nginx/sites-available/

ahora creamos y editamos

nano site

y ponemos esto dentro

 

server{
listen 192.168.1.106:80;
server_name www.anime.com anime.com;
location / {
proxy_pass http://192.168.1.106:8080;
include /etc/nginx/proxy.conf;
}
location / {
root /var/www/nginx-default/;
}
} 

 

lo explico

 

1.listen: es la direccion publica en mi caso privada por donde va ha escuchar nginx + el puerto. 

2. server name: especificamos el FQDN y el dominio.

3.proxy_pass: la direccion y el puerto por donde va eschusar el servidor apache.

4. root: es la ruta donde se encuentra nuestro sitio alamacenado.

 

explico un poco lo de los puertos, nginx como va hacer el que recibe la peticion va eschucar directament por el puerto 80, en consecuencia debemos modificar el puetor por donde escucha nuestro servidor apache para no crear conflicto y lograr que ambos queden funcionales.  

 

una vez terminada la configuracion anterior ejecutamos la siguiente linea

 

 ln  -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/site

ahora para poder procesar la peticiones que se realicen a nuestro sitio via apache creamos el siguiente archivo en la siguiente ruta.

nano /etc/nginx/proxy.conf

he ingresamos las siguiente lineas.

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

 

ahora reiniciamos nginx

/etc/init.d/nginx restart

 

instalación y configuracion de apache

 

para isntalar basta con el siguiente comando.

apt-get install apache2

 

ahora modificamos el puero por donde escucha para no crear conflicto como lo mencionamos anteriormente.

vamos a la siguiente ruta.

cd /etc/apache2

y editamos el siguiente archivo.

nano ports.conf

para que quede de la siguiente manera.

 

NameVirtualHost *:8080

Listen 8080

Aora creamos un archivo de configuración para site en /etc/apache2/sites-available/site

he incluimos la siguientes lineas.

 

NameVirtualHost 192.168.1.106
 <VirtualHost 192.168.1.106>
         ServerName www.anime.com
         ServerPath /nginx-defaul
        DocumentRoot /var/www/nginx-default
        Directoryindex  nada.html  index.html index.php index.shtml
  <Directory /var/www/nginx-default>
     AllowOverride All
     Options MultiViews Indexes SymLinksIfOwnerMatch
     Allow from All
   </Directory>

   </VirtualHost>

 

no olvidar publicar nuestro sitio en la carpeta web, en la ruta que especificamos en el DocumentRoot  la mía es /var/www/nginx-default

reiniciamos apache

/etc/init.d/apache2 restart

ahora verificamos si todo ha salido bien.

ingresamos a un navegador y digitamos el nombre del dominio en mi caso es www.anime.com nos debería salir algo como esto.

 

Oksoft.es 0020

 

en esta configuracion todavía no esta redirigiendo pero lo ideal seria que lo hiciera, acepto cualquier sugerencia, por el momento especificamos el sitio en mi caso es nada.html

y se nos debe mostrar algo como esto, que es a modo de ejemplo.

 

Oksoft.es 0021

 

nota:  si tenemos paginas en lenguajes como .asp o .php el proxy debe soportar estos lenguajes para poder publicarlos , para el caso de .php podemos instalar mod_wsgi.

con el siguiente comando.

apt-get install libapache2-mod-wsgi

 

si desena verificar si se esta realizando primero la conexión con el proxy y después con el apache revise los log de nginx y apache hay se muestra todo muy bien.

Integracion de servidores web

Seguir

Get every new post delivered to your Inbox.