Elenco all'interno o all'esterno di VirtualHosts?

C'è una differenza tra mettere i tag di directory all'interno o all'esterno di VirtualHosts? Ho trovato un file di configuration che ha diversi VirtualHosts tutti con la stessa etichetta di Directory dentro e la stessa esterna; quindi penso di sbarazzarmi di questa duplicazione, ma non capisco completamente la semantica coinvolta.

  • La mia configuration di Apache2 è perdita di memory?
  • Richiede il gruppo ldap su apache 2 vhost non riesce quando si tenta di accedere
  • Nginx invia il proxy all'URL esterno che ha reindirizzato in loco
  • Miglior modo per impedire il server predefinito?
  • Il modo migliore per impostare l'ambiente multiutente per ospitare Mono ASP.NET
  • Come posso ottimizzare il nginx? Dallo benchmarking sembra Apache2 sia più veloce per la consegna statica
  • IIS e Apache sulla stessa macchina?
  • Apache ReverseProxy è una soluzione di produzione accettabile?
  • Errore FastCGI e Apache 500 in modo intermittente
  • Visualizza la configuration Apache
  • Spegnerà htaccess un notevole incremento delle performance?
  • L'authentication LDAP non riesce con 500 o 401 a seconda del bind per Apache2
  • One Solution collect form web for “Elenco all'interno o all'esterno di VirtualHosts?”

    Un <Directory> all'interno di un <VirtualHost> si applica solo ai file all'interno di quella directory quando si accede tramite quel VHost. <Directory> al di fuori di un <VirtualHost> si applica sempre (a less che non sia stato sovrascritto nel <VirtualHost> o altrove, ovviamente).

    Da un punto di vista della sicurezza, puoi discutere entrambe le parti: livelli di accesso AllowOverride all ( AllowOverride all , f.ex.) sono probabilmente più saggi per configurare all'interno di un <VirtualHost>, poiché un'interazione imprevisto tra gli script su un altro VHost potrebbe consentire di lanciare un attacco XSS. Le restrizioni all'accesso ( Deny from all , Allow from 127.0.0.1 ) hanno più senso al di fuori di un <VirtualHost>, nel caso in cui ci sia una backdoor attraverso qualcosa di simile ad un Alias ​​o ScriptAlias ​​di alto livello. E poi si arriva alle possibilità davvero complicate: where un AllowOverride all ciò che AllowOverride all una restrizione di accesso in un .htaccess go, in quanto si potrebbe avere un VHost che ha distriggersto il suo motore di script per motivi di performance o di sicurezza, ma che poi espone un file con informazioni riservate tipicamente protette da .htaccess ?

    Alla fine della giornata, where posizionare <Directory> finisce per essere una combinazione di tre cose, in ordine crescente di importnza:

    1. Politica – se l'azienda mette <Directory> dentro <VirtualHost>, è quasi certamente sbagliato a rovinare la barca.
    2. Leggenda – se hai sei centinaia di VHost, tutti necessitano della stessa <Directory> stanza, probabilmente vale la pena rompere con la politica.
    3. Sicurezza: se c'è un chiaro vantaggio in termini di sicurezza per un approccio o l'altro, allora questa è la scelta giusta, la politica e la leggibilità sono dannati (anche se ti consiglierebbe di documentare il motivo e il modo in cui si è rotto con la politica e prendere misure come l'utilizzo di Include per massimizzare la leggibilità).
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.