Onde colocar o conteúdo da web para vários domínios em um servidor baseado em RHEL?

2

Estou configurando um servidor web RHEL que hospedará conteúdo estático e dinâmico para vários nomes de domínio. Vários usuários atualizam arquivos por SSH e SFTP.

Onde os arquivos para cada nome de domínio devem ser colocados? No meu sistema padrão, existe um único /var/www/ , mas nenhum indício de como localizar vários domínios.

Olhando para o Filesystem Hierarchy Standard ( link ), parece que a melhor opção é:

/srv/example.com/www/
/srv/example.org/www/

Alguma preferência?

    
por famousgarkin 20.06.2009 / 16:18

4 respostas

2

O padrão do Apache geralmente é /var/www/example.com/ , mas você também pode seguir as diretrizes da FHS que considero muito boas. O importante é que você mantenha a consistência entre os sistemas, é por isso que a FHS é uma boa referência a seguir.

De qualquer forma, recomendo que a tenha em uma partição diferente porque:

  • Se preencher, não afetará o servidor
  • Você pode definir opções de montagem como noexec para segurança adicional

Lembre-se de ter muito cuidado com as permissões do diretório para evitar que usuários de um site acessem outros sites.

    
por 20.06.2009 / 16:43
2

Temos experiências muito boas com uma estrutura de

/srv/www/example.com/html
/srv/www/example.com/sub-d/www
/srv/www/example.com/sub-d/beta
/srv/www/example.com/sub-d/logs (if preferred)

se o servidor for usado por uma empresa. Se você tem domínios de clientes para veicular, convém considerar

/srv/www/client1/doma.in/html
/srv/www/client1/secon.nd/html
/srv/www/client2/foob.ar/html
    
por 20.06.2009 / 17:29
1

Eu gosto da convenção /var/www/example.com.

Eu gosto de ter o conf em /etc/httpd/vhosts.d/example.com.conf e incluído no conf apache principal. Eu não deixo o cliente editar isso. Desta forma, se você adicionar um novo domínio e o configtest, recarregar ou reiniciar, detectará um erro, então é muito fácil retroceder.

Com: /var/www/example.com/html /var/www/example.com/cgi-bin /var/www/example.com/log

Eu uso posix acls para adicionar acls padrão nos diretórios acima, para que todos os arquivos que eles criam sejam criados com rwx para o usuário do servidor (aquele usado no suexec) / group, de modo que não importa o usuário criar o arquivo, o usuário do servidor pode acessá-los e para que os membros do grupo do usuário VritualHosts possam acessar todos os arquivos.

/var/www/example.com/private Eu uso privado como o lugar para arquivos de senha e de grupo para ir.

/var/www/example.com/conf/example.com.include.conf Se eu quiser permitir que o proprietário do site faça alterações de configuração, também criei um arquivo como: /var/www/example.com/conf/example.com.include.conf que está incluído no VirtualHost na configuração principal do domínio, por exemplo, /etc/httpd/vhosts.d/example.com.conf.

Você precisa ser cuidadoso com isso, já que isso significa que o usuário pode quebrar toda a sua configuração para que você tenha muito cuidado com o usuário e saiba o que está fazendo. Eu tenho a tendência de fazer isso quando existe um servidor com vários VirtualHosts todos pertencentes ao mesmo cliente, então se eles quebrarem a configuração, eles apenas quebrarão seus próprios sites.

Também sugiro usar o suexec, que permite que os processos sejam executados como um usuário diferente do apache e também permite que o conteúdo dinâmico seja executado como usuários que não sejam o usuário do apache.

Veja: link

Você também pode querer examinar as várias diretivas RLmit, que permitem que você limite o uso de recursos em uma base VirtualHost, etc. Veja:

link

    
por 21.06.2009 / 12:31
0

Usamos o seguinte layout

/var/www/domains/$DOMAIN/$HOST/{htdocs,logs}

Então, pegando www.google.com como exemplo

<VirtualHost *:80>
   ServerName www.google.com

   DocumentRoot /var/www/domains/google.com/www/htdocs

   ErrorLog /var/www/domains/google.com/logs/error_log
   CustomLog /var/www/domains/google.com/logs/access_log combined
</VirtualHost>
    
por 21.06.2009 / 08:40

Tags