Apache

Director Técnico en Escuela Politécnica Superior. Universidad de Alicante
30 de Apr de 2017
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
Apache
1 de 74

Más contenido relacionado

La actualidad más candente

Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
Servidores web de altas prestaciones. Tema 5Servidores web de altas prestaciones. Tema 5
Servidores web de altas prestaciones. Tema 5pacvslideshare
Filtrado der contenido web con GNU/Linux y SquidFiltrado der contenido web con GNU/Linux y Squid
Filtrado der contenido web con GNU/Linux y SquidJorge Medina
Varnish http cacheVarnish http cache
Varnish http cacheDaniel González Cerviño
12121212
1212chucho92
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextkjuanextk

Similar a Apache

Curso de phpCurso de php
Curso de phpFabián Castillo Faune
Apache2 dia1Apache2 dia1
Apache2 dia1lyonel_cc
Sacándole el jugo a apacheSacándole el jugo a apache
Sacándole el jugo a apacheJavier Aroche
Web Services buscador de localizaciones de IP’s (Presentación)Web Services buscador de localizaciones de IP’s (Presentación)
Web Services buscador de localizaciones de IP’s (Presentación)Pablo Pellegrinet
Apache, getting the best versionApache, getting the best version
Apache, getting the best versionIvan Ortega
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIker Canarias

Más de Juan Antonio Gil Martínez-Abarca

03 asor   gestión de usuarios y ldap03 asor   gestión de usuarios y ldap
03 asor gestión de usuarios y ldapJuan Antonio Gil Martínez-Abarca
06 airc   firewalls06 airc   firewalls
06 airc firewallsJuan Antonio Gil Martínez-Abarca
08 airc   hackingbuscadores - mod08 airc   hackingbuscadores - mod
08 airc hackingbuscadores - modJuan Antonio Gil Martínez-Abarca
Aisi 1415 06 correoAisi 1415 06 correo
Aisi 1415 06 correoJuan Antonio Gil Martínez-Abarca
05 airc   dns05 airc   dns
05 airc dnsJuan Antonio Gil Martínez-Abarca
04 girc   servicio dhcp 04 girc   servicio dhcp
04 girc servicio dhcp Juan Antonio Gil Martínez-Abarca

Último

Comportamiento toxico hacía idols.pdfComportamiento toxico hacía idols.pdf
Comportamiento toxico hacía idols.pdfIsabelCristinaBolaos2
SEMANA 16 - ASPECTOS ETICOS.pdfSEMANA 16 - ASPECTOS ETICOS.pdf
SEMANA 16 - ASPECTOS ETICOS.pdfJoelitoYaringaoGonza
INFOGRAFIA-ANTARTIDA-docx.docxINFOGRAFIA-ANTARTIDA-docx.docx
INFOGRAFIA-ANTARTIDA-docx.docxMartinMartin549027
MODALIDAD.docxMODALIDAD.docx
MODALIDAD.docxWilliCalsina
MAQUINAS SIMPLES Y COMPUESTAS (1).pdfMAQUINAS SIMPLES Y COMPUESTAS (1).pdf
MAQUINAS SIMPLES Y COMPUESTAS (1).pdfSebastianMuoz306807
estudio de Digitalización de las Empresas en Chile - Entel Digitalestudio de Digitalización de las Empresas en Chile - Entel Digital
estudio de Digitalización de las Empresas en Chile - Entel DigitalAproximacionAlFuturo

Apache

Notas del editor

  1. Solicitudes múltiples  acceso concurrente o única llamada para obtener todos los recursos (multiples peticiones por concexión) Version 1.1 of the protocol made bandwidth optimization improvements to HTTP/1.0. For example, HTTP/1.1 introduced chunked transfer encoding to allow content on persistent connections to be streamed, rather than buffered. HTTP pipelining further reduces lag time, allowing clients to send multiple requests before a previous response has been received to the first one. Another improvement to the protocol was byte serving, which is when a server transmits just the portion of a resource explicitly requested by a client. FastCGI es una alternativa al CGI estándar, cuya diferencia radica principalmente en el hecho de que el servidor crea un único proceso persistente por cada programa FastCGI en lugar de uno por cada solicitud del cliente. Ventajas [editar] Ahorro de Tráfico: Las peticiones de páginas Web se hacen al servidor Proxy y no a Internet directamente. Por lo tanto, aligera el tráfico en la red y descarga los servidores destino, a los que llegan menos peticiones. Velocidad en Tiempo de respuesta: El servidor Proxy crea un caché que evita transferencias idénticas de la información entre servidores durante un tiempo (configurado por el administrador) así que el usuario recibe una respuesta más rápida. Demanda a Usuarios: Puede cubrir a un gran número de usuarios, para solicitar, a través de él, los contenidos Web. Filtrado de contenidos: El servidor proxy puede hacer un filtrado de páginas o contenidos basándose en criterios de restricción establecidos por el administrador dependiendo valores y características de lo que no se permite, creando una restricción cuando sea necesario. Modificación de contenidos: Basándose en la misma función del filtrado, y llamado Privoxy, tiene el objetivo de proteger la privacidad en Internet, puede ser configurado para bloquear direcciones y Cookies por expresiones regulares y modifica en la petición el contenido. Desventajas [editar] Las páginas mostradas pueden no estar actualizadas si éstas han sido modificadas desde la última carga que realizó el proxy caché. Un diseñador de páginas web puede indicar en el contenido de su web que los navegadores no hagan una caché de sus páginas, pero este método no funciona habitualmente para un proxy. El hecho de acceder a Internet a través de un Proxy, en vez de mediante conexión directa, impide realizar operaciones avanzadas a través de algunos puertos o protocolos. Almacenar las páginas y objetos que los usuarios solicitan puede suponer una violación de la intimidad para algunas personas. SSI (Server Side Includes) are directives that are placed in HTML pages, and evaluated on the server while the pages are being served. They let you add dynamically generated content to an existing HTML page, without having to serve the entire page via a CGI program, or other dynamic technology. The decision of when to use SSI, and when to have your page entirely generated by some program, is usually a matter of how much of the page is static, and how much needs to be recalculated every time the page is served. SSI is a great way to add small pieces of information, such as the current time. But if a majority of your page is being generated at the time that it is served, you need to look for some other solution.
  2. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones.
  3. Apache inicia varios subprocesos y cada petición es atendida por uno de estos; cuando termina con esta petición este subproceso podría atender a otro cliente o ser terminado, según al valor de MaxRequestsPerChild. Es el modo más estable, ya que un error crítico solo afectaría a una petición. Este es el único modo en que se pueden usar módulos / extensiones que no sean Thread-Safe. Requiere más recursos (Memoria RAM y CPU) para atender cierto número de peticiones simultaneas, respecto a otras configuraciones. Esto limita drásticamente la escabilidad del servidor. Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread-Safe, pero al usarlos junto a Prefork podemos justificar el mayor uso de php (o páginas sin ningún tipo de caché, aparte del acelerador en sí). Prefork es la configuración predeterminada en la mayoría de instalaciones. EN 2.4, MaxClients es MaxRequestWorkers
  4. StarServers: prefork defaults to 5 MaxSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. If you are trying to set the value equal to or lower than MinSpareServers, Apache HTTP Server will automatically adjust it to MinSpareServers + 1. MinSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. Setting MaxConnectionsPerChild to a non-zero value limits the amount of memory that process can consume by (accidental) memory leakage.
  5. StarServers: prefork defaults to 5 MaxSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. If you are trying to set the value equal to or lower than MinSpareServers, Apache HTTP Server will automatically adjust it to MinSpareServers + 1. MinSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. Setting MaxConnectionsPerChild to a non-zero value limits the amount of memory that process can consume by (accidental) memory leakage.
  6. StarServers: prefork defaults to 5 MaxSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. If you are trying to set the value equal to or lower than MinSpareServers, Apache HTTP Server will automatically adjust it to MinSpareServers + 1. MinSpareServers: Tuning of this parameter should only be necessary on very busy sites. Setting this parameter to a large number is almost always a bad idea. Setting MaxConnectionsPerChild to a non-zero value limits the amount of memory that process can consume by (accidental) memory leakage.
  7. AsyncRequestWorkerFactor This directive can be used to fine-tune the per-process connection limit. A process will only accept new connections if the current number of connections (not counting connections in the "closing" state) is lower than: ThreadsPerChild + (AsyncRequestWorkerFactor * number of idle workers) An estimation of the maximum concurrent connections across all the processes given an average value of idle worker threads can be calculated with: (ThreadsPerChild + (AsyncRequestWorkerFactor * number of idle workers)) * ServerLimit Example ThreadsPerChild = 10 ServerLimit = 4 AsyncRequestWorkerFactor = 2 MaxRequestWorkers = 40 idle_workers = 4 (average for all the processes to keep it simple) max_connections = (ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers)) * ServerLimit = (10 + (2 * 4)) * 4 = 72
  8. AsyncRequestWorkerFactor This directive can be used to fine-tune the per-process connection limit. A process will only accept new connections if the current number of connections (not counting connections in the "closing" state) is lower than: ThreadsPerChild + (AsyncRequestWorkerFactor * number of idle workers) An estimation of the maximum concurrent connections across all the processes given an average value of idle worker threads can be calculated with: (ThreadsPerChild + (AsyncRequestWorkerFactor * number of idle workers)) * ServerLimit Example ThreadsPerChild = 10 ServerLimit = 4 AsyncRequestWorkerFactor = 2 MaxRequestWorkers = 40 idle_workers = 4 (average for all the processes to keep it simple) max_connections = (ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers)) * ServerLimit = (10 + (2 * 4)) * 4 = 72
  9. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  10. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  11. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  12. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  13. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  14. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  15. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  16. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  17. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  18. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  19. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  20. La directiva MaxSpareServers determina el número máximo de procesos hijo en espera deseado. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay más de MaxSpareServers procesos hijo en espera, entonces el proceso padre elimina el exceso. La directiva MinSpareServers fija el número mínimo de procesos hijo en espera. Un proceso en espera es aquel que no está atendiendo ninguna petición. Si hay menos procesos hijo en espera que MinSpareServers, entonces el proceso padre crea nuevos procesos hijo a un ritmo máximo de uno por segundo.
  21. Relacionada con ellas está la directiva Order que indica a Apache2 en qué orden tiene que aplicar las directivas Allow y Deny UserDir indica el directorio que se añade al directorio personal de los usuarios para servior páginas cuando se realiza una peticion del tipo ~usuario Esta directiva activa la resolución de DNS de manera que los nombres de host puedan ser guardados en los archivos log (y pasados a CGIs/SSIs en REMOTE_HOST). El valor Double se refiere a hacer una busqueda de DNSs inversa doble. Esto es, después de hacer una busqueda inversa, se hace una busqueda normal posteriormente sobre ese resultado. Al menos una de las direcciones IP en la búsqueda posterior debe equivaler a la dirección IP original. (En terminología de "tcpwrappers" se llama PARANOID.)
  22. Relacionada con ellas está la directiva Order que indica a Apache2 en qué orden tiene que aplicar las directivas Allow y Deny UserDir indica el directorio que se añade al directorio personal de los usuarios para servior páginas cuando se realiza una peticion del tipo ~usuario Esta directiva activa la resolución de DNS de manera que los nombres de host puedan ser guardados en los archivos log (y pasados a CGIs/SSIs en REMOTE_HOST). El valor Double se refiere a hacer una busqueda de DNSs inversa doble. Esto es, después de hacer una busqueda inversa, se hace una busqueda normal posteriormente sobre ese resultado. Al menos una de las direcciones IP en la búsqueda posterior debe equivaler a la dirección IP original. (En terminología de "tcpwrappers" se llama PARANOID.)
  23. Relacionada con ellas está la directiva Order que indica a Apache2 en qué orden tiene que aplicar las directivas Allow y Deny UserDir indica el directorio que se añade al directorio personal de los usuarios para servior páginas cuando se realiza una peticion del tipo ~usuario Esta directiva activa la resolución de DNS de manera que los nombres de host puedan ser guardados en los archivos log (y pasados a CGIs/SSIs en REMOTE_HOST). El valor Double se refiere a hacer una busqueda de DNSs inversa doble. Esto es, después de hacer una busqueda inversa, se hace una busqueda normal posteriormente sobre ese resultado. Al menos una de las direcciones IP en la búsqueda posterior debe equivaler a la dirección IP original. (En terminología de "tcpwrappers" se llama PARANOID.)
  24. Relacionada con ellas está la directiva Order que indica a Apache2 en qué orden tiene que aplicar las directivas Allow y Deny UserDir indica el directorio que se añade al directorio personal de los usuarios para servior páginas cuando se realiza una peticion del tipo ~usuario Esta directiva activa la resolución de DNS de manera que los nombres de host puedan ser guardados en los archivos log (y pasados a CGIs/SSIs en REMOTE_HOST). El valor Double se refiere a hacer una busqueda de DNSs inversa doble. Esto es, después de hacer una busqueda inversa, se hace una busqueda normal posteriormente sobre ese resultado. Al menos una de las direcciones IP en la búsqueda posterior debe equivaler a la dirección IP original. (En terminología de "tcpwrappers" se llama PARANOID.)
  25. Relacionada con ellas está la directiva Order que indica a Apache2 en qué orden tiene que aplicar las directivas Allow y Deny UserDir indica el directorio que se añade al directorio personal de los usuarios para servior páginas cuando se realiza una peticion del tipo ~usuario Esta directiva activa la resolución de DNS de manera que los nombres de host puedan ser guardados en los archivos log (y pasados a CGIs/SSIs en REMOTE_HOST). El valor Double se refiere a hacer una busqueda de DNSs inversa doble. Esto es, después de hacer una busqueda inversa, se hace una busqueda normal posteriormente sobre ese resultado. Al menos una de las direcciones IP en la búsqueda posterior debe equivaler a la dirección IP original. (En terminología de "tcpwrappers" se llama PARANOID.)
  26. Operating System Caching Almost all modern operating systems cache file-data in memory managed directly by the kernel. This is a powerful feature, and for the most part operating systems get it right. For example, on Linux, let's look at the difference in the time it takes to read a file for the first time and the second time; colm@coroebus:~$ time cat testfile > /dev/null real 0m0.065s user 0m0.000s sys 0m0.001s colm@coroebus:~$ time cat testfile > /dev/null real 0m0.003s user 0m0.003s sys 0m0.000s Even for this small file, there is a huge difference in the amount of time it takes to read the file. This is because the kernel has cached the file contents in memory. By ensuring there is "spare" memory on your system, you can ensure that more and more file-contents will be stored in this cache. This can be a very efficient means of in-memory caching, and involves no extra configuration of httpd at all. Additionally, because the operating system knows when files are deleted or modified, it can automatically remove file contents from the cache when necessary. This is a big advantage over httpd's in-memory caching which has no way of knowing when a file has changed. Despite the performance and advantages of automatic operating system caching there are some circumstances in which in-memory caching may be better performed by httpd.
  27. If the HttpOnly flag (optional) is included in the HTTP response header, the cookie cannot be accessed through client side script (again if the browser supports this flag). As a result, even if a cross-site scripting (XSS) flaw exists, and a user accidentally accesses a link that exploits this flaw, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.
  28. If the HttpOnly flag (optional) is included in the HTTP response header, the cookie cannot be accessed through client side script (again if the browser supports this flag). As a result, even if a cross-site scripting (XSS) flaw exists, and a user accidentally accesses a link that exploits this flaw, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.
  29. If the HttpOnly flag (optional) is included in the HTTP response header, the cookie cannot be accessed through client side script (again if the browser supports this flag). As a result, even if a cross-site scripting (XSS) flaw exists, and a user accidentally accesses a link that exploits this flaw, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.
  30. If the HttpOnly flag (optional) is included in the HTTP response header, the cookie cannot be accessed through client side script (again if the browser supports this flag). As a result, even if a cross-site scripting (XSS) flaw exists, and a user accidentally accesses a link that exploits this flaw, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.
  31. Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch, Apache will need to issue extra system calls to check up on symlinks. (One extra call per filename component.) For example, if you had: DocumentRoot "/www/htdocs" <Directory "/"> Options SymLinksIfOwnerMatch </Directory> and a request is made for the URI /index.html, then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking, you can do something like this: DocumentRoot "/www/htdocs" <Directory "/"> Options FollowSymLinks </Directory> <Directory "/www/htdocs"> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>
  32. Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch, Apache will need to issue extra system calls to check up on symlinks. (One extra call per filename component.) For example, if you had: DocumentRoot "/www/htdocs" <Directory "/"> Options SymLinksIfOwnerMatch </Directory> and a request is made for the URI /index.html, then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking, you can do something like this: DocumentRoot "/www/htdocs" <Directory "/"> Options FollowSymLinks </Directory> <Directory "/www/htdocs"> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>
  33. Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch, Apache will need to issue extra system calls to check up on symlinks. (One extra call per filename component.) For example, if you had: DocumentRoot "/www/htdocs" <Directory "/"> Options SymLinksIfOwnerMatch </Directory> and a request is made for the URI /index.html, then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking, you can do something like this: DocumentRoot "/www/htdocs" <Directory "/"> Options FollowSymLinks </Directory> <Directory "/www/htdocs"> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>
  34. Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch, Apache will need to issue extra system calls to check up on symlinks. (One extra call per filename component.) For example, if you had: DocumentRoot "/www/htdocs" <Directory "/"> Options SymLinksIfOwnerMatch </Directory> and a request is made for the URI /index.html, then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking, you can do something like this: DocumentRoot "/www/htdocs" <Directory "/"> Options FollowSymLinks </Directory> <Directory "/www/htdocs"> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>