Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-08 Por tôpico Wanderson Tinti
2009/10/8 "Fábio Jr." 

>   Olá Wanderson,
>   Realmente, meus testes com o AliasMatch tinham dado errado, por causa
>   da má formulação da expressão regular. Seguindo a sua dica, fiz algumas
>   modificações e consegui o que eu queria inicialmente.
>   Muito obrigado, essa dúvida já foi resolvida.
>   Minha outra "dúvida", na verdade gostaria de sugestões ou experiências,
>   em relação a organização de grandes quantidades de arquivos. Pensei em
>   organizar em pastas como já havia dito, mas não sei até que ponto isso
>   me ajudar ou só retardar os problemas com throughput.
>   Algumas soluções que pensei:
>   - Armazenamento em banco, já que são somente imagens de mesmo
>   formato.
>   - Contratação de um CloudStorage
>   - Migração para um solução baseada em SAN ( Storage Area Networtk )
>   Minhas principais preocupações são em relação a escalabilidade e
>   segurança ( failover e backup )
>   Novamente obrigado Wanderson pela ajuda.
>[]s
>   Fábio Jr.
>   Wanderson Tinti escreveu:
>
>
Fábio,

Não sou a melhor pessoa para te responder, alguns membros da lista podem
sugerir informações mais precisas. Sua preocupação é segurança e throughput,
eu partiria para um storage com raid10, por exemplo. Algo realmente
redundante e rápido, e descartaria a utilização de banco.

Boa tarde.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-08 Por tôpico Fábio Jr.
   Olá Wanderson,
   Realmente, meus testes com o AliasMatch tinham dado errado, por causa
   da má formulação da expressão regular. Seguindo a sua dica, fiz algumas
   modificações e consegui o que eu queria inicialmente.
   Muito obrigado, essa dúvida já foi resolvida.
   Minha outra "dúvida", na verdade gostaria de sugestões ou experiências,
   em relação a organização de grandes quantidades de arquivos. Pensei em
   organizar em pastas como já havia dito, mas não sei até que ponto isso
   me ajudar ou só retardar os problemas com throughput.
   Algumas soluções que pensei:
   - Armazenamento em banco, já que são somente imagens de mesmo
   formato.
   - Contratação de um CloudStorage
   - Migração para um solução baseada em SAN ( Storage Area Networtk )
   Minhas principais preocupações são em relação a escalabilidade e
   segurança ( failover e backup )
   Novamente obrigado Wanderson pela ajuda.
   []s
   Fábio Jr.
   Wanderson Tinti escreveu:

2009/10/8 "Fábio Jr." [1]


Olá Fábio, bom dia.

Eu compreendir sua pergunta. E, como disse, é possível sim. Em um teste
rápido que acabei de fazer conseguir obter o resultado que você procura. Vou
tentar explicar como ficou meu ambiente.

Obs: A unica diferença é que estou usando arquivos .txt e não .jpg.

Diretórios dos arquivos:
/var/www/imagens/4/56/123456.txt
/var/www/imagens/8/91/123891.txt
/var/www/imagens/8/91/456891.txt

Obs: Em cada um desses arquivos eu escrevi algo para ter certeza do
funcionamento, além é claro de consultar os logs do Apache.

Agora a configuração do AliasMatch no Apache:

AliasMatch ^/...([0-9-_.]{1})/?([0-9-_.]{2})/?(.*) /var/www/imagens/$1/$2/$0


Então, quando eu acesso [2]http://www.site.com/123456.txt sou levado ao arquivo
/var/www/imagens/4/56/123456.txt. O mesmo server para os outros arquivos.

Não sou conhecedor de expressões regulares, mas isso deve ser o que você
procura.

Nota: Estou supondo que seus arquivos de imagens tenham somente seis
caracteres como parte do nome(6 números). Por quê? No inicio da string eu
falo para ser pego os 3 primeiros caracteres ( ^/... ). Depois pego o
primeiro número, mais os dois últimos números, e para finalizar pego a
extensão do arquivo( .*). Você pode trocar por ( .jpg). Depois é só montar o
caminho para os arquivos usando as variáveis com os valores extraídos.

Se eu falei alguma besteira peso que me corrija, por gentileza.


É isso que você procura fazer?



Atenciosamente,
Wanderson Tinti
-
Histórico: [3]http://www.fug.com.br/historico/html/freebsd/
Sair da lista: [4]https://www.fug.com.br/mailman/listinfo/freebsd

References

   1. mailto:fjuniorli...@gmail.com
   2. http://www.site.com/123456.txt
   3. http://www.fug.com.br/historico/html/freebsd/
   4. https://www.fug.com.br/mailman/listinfo/freebsd
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-08 Por tôpico Wanderson Tinti
2009/10/8 "Fábio Jr." 

>   Obrigado pela resposta Wanderson,
>   Posso ter me expressado mal, mas esse não era o foco das minhas
>   perguntas,
>   O AliasMatch do Apache não consegue extrair dados de uma string.
>   Ex.:
>   URL: [1]http://servidor.foo.bar/123852.jpg
>   Eu preciso q quando alguem fizer esta requisição ao apache, ele
>   redirecione para o diretório /arquivos/imagens/8/52/123852.jpg. Usando
>   expressões regulares do AliasMatch, não consigo pegar o caractere 8 do
>   último campo, e depois pegar os caracteres 52, mas apenas a palavra
>   inteira. Preciso que seja algo dinâmico pois ficaria inviável criar um
>   redirecionamento para cada pasta.
>   Esta estratégia de reorganização de diretórios tem como foco
>   performance de disco. As alterações do Apache são apenas reflexos desta
>   estratégia. Escolhi o Apache depois de realizar alguns testes entre o
>   lighttpd e ele, e perceber que mesmo o lighttpd sendo mais leve, o
>   Apache é um aplicativo muito mais completo em questão de módulos
>   nativos.
>   Meu problema maior é com a indexação destes arquivos pelo SO, e também
>   as rotinas de backup, já que o storage onde estes arquivos são
>   hospedados fica nos EUA.
>   []s
>   Fábio Jr.
>   Wanderson Tinti escreveu:
>
> 2009/10/7 "Fábio Jr." [2]
>
>
>
>
Olá Fábia, bom dia.

Eu compreendir sua pergunta. E, como disse, é possível sim. Em um teste
rápido que acabei de fazer conseguir obter o resultado que você procura. Vou
tentar explicar como ficou meu ambiente.

Obs: A unica diferença é que estou usando arquivos .txt e não .jpg.

Diretórios dos arquivos:
/var/www/imagens/4/56/123456.txt
/var/www/imagens/8/91/123891.txt
/var/www/imagens/8/91/456891.txt

Obs: Em cada um desses arquivos eu escrevi algo para ter certeza do
funcionamento, além é claro de consultar os logs do Apache.

Agora a configuração do AliasMatch no Apache:

AliasMatch ^/...([0-9-_.]{1})/?([0-9-_.]{2})/?(.*) /var/www/imagens/$1/$2/$0


Então, quando eu acesso http://www.site.com/123456.txt sou levado ao arquivo
/var/www/imagens/4/56/123456.txt. O mesmo server para os outros arquivos.

Não sou conhecedor de expressões regulares, mas isso deve ser o que você
procura.

Nota: Estou supondo que seus arquivos de imagens tenham somente seis
caracteres como parte do nome(6 números). Por quê? No inicio da string eu
falo para ser pego os 3 primeiros caracteres ( ^/... ). Depois pego o
primeiro número, mais os dois últimos números, e para finalizar pego a
extensão do arquivo( .*). Você pode trocar por ( .jpg). Depois é só montar o
caminho para os arquivos usando as variáveis com os valores extraídos.

Se eu falei alguma besteira peso que me corrija, por gentileza.


É isso que você procura fazer?



Atenciosamente,
Wanderson Tinti
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-08 Por tôpico Fábio Jr.
   Obrigado pela resposta Wanderson,
   Posso ter me expressado mal, mas esse não era o foco das minhas
   perguntas,
   O AliasMatch do Apache não consegue extrair dados de uma string.
   Ex.:
   URL: [1]http://servidor.foo.bar/123852.jpg
   Eu preciso q quando alguem fizer esta requisição ao apache, ele
   redirecione para o diretório /arquivos/imagens/8/52/123852.jpg. Usando
   expressões regulares do AliasMatch, não consigo pegar o caractere 8 do
   último campo, e depois pegar os caracteres 52, mas apenas a palavra
   inteira. Preciso que seja algo dinâmico pois ficaria inviável criar um
   redirecionamento para cada pasta.
   Esta estratégia de reorganização de diretórios tem como foco
   performance de disco. As alterações do Apache são apenas reflexos desta
   estratégia. Escolhi o Apache depois de realizar alguns testes entre o
   lighttpd e ele, e perceber que mesmo o lighttpd sendo mais leve, o
   Apache é um aplicativo muito mais completo em questão de módulos
   nativos.
   Meu problema maior é com a indexação destes arquivos pelo SO, e também
   as rotinas de backup, já que o storage onde estes arquivos são
   hospedados fica nos EUA.
   []s
   Fábio Jr.
   Wanderson Tinti escreveu:

2009/10/7 "Fábio Jr." [2]


Olá pessoal, desculpem  off, mas gostaria de algumas opiniões já que o
servidor em questão roda FreeBSD.

Tenho um servidor que serve conteúdo estático, sendo que grande parte
deste conteúdo são imagens. Estas imagens estão todas armazenadas em um
diretório, sendo que há aproximadamente 4 milhões de imagens dentro
deste diretório.

Acredito que esta estrutura de armazenamento seja, a médio prazo, pouco
segura e nada dinâmica, tornando escalabilidade e backup praticamente
impossível via rede, principalmente pelo fato do servidor estar
hospedado em outro país.

Pensando em uma maneira de resolver este problema, cheguei a uma
possibilidade, mas que pode não ser a solução correta. Minha sugestão é
a seguinte:

Dividir estas imagens, em diretórios baseando-se nos 3 últimos números
do nome do arquivo.( Os arquivos são nomeados em ordem crescente no
formato {número}.png ) Ex.:

O caminho absoluto do arquivo 123891.png no servidor é
/imagens/8/91/123891.png. O arquivo 456891.png, também ficará nesta
mesma pasta. Porém o arquivo 123456.png ficará armazenado na pasta
/imagens/4/56/123456.png.

A estrutura se baseia sempre na centena do nome do arquivo (891), sendo
que o número da centena (8) é a pasta pai, e os números da dezena e
unidade (91) são o nome da pasta filho.

1ª questão: existe uma maneira de, fazendo uma requisição para
[3]http://servidor.com.br/imagens/123456.png, o Apache redirecionar ou
tratar essa URL para o caminho correto, através de uma expressão regular
utilizando somente um AliasMatch? (pelas minhas pesquisas na
documentação do Apache não consegui fazê-lo)

2ª questão: gostaria de sugestões de como estruturar melhor os arquivos,
para obter uma melhor performance. Outras soluções possíveis seria a
criação de diretórios ainda mais específicos ou a migração para um
serviço de storage distribuído.

Obrigado



Boa noite.

1º questão: A melhor saída é utilizar expressões regulares com AliasMatch
para levar o usuário ao diretório correto. De uma boa lida sobre o assunto.

2º questão: Na minha opinião, você pode utilizar o Lighttpd para servir seus
conteúdos estáticos. Você deverá ter uma melhora significativa na
performance. Esse link deve servir como referência.

[4]http://www.vivaolinux.com.br/artigo/Otimizando-seu-web-server-com-Apache2-+-L
ighttpd?pagina=1
-
Histórico: [5]http://www.fug.com.br/historico/html/freebsd/
Sair da lista: [6]https://www.fug.com.br/mailman/listinfo/freebsd

References

   1. http://servidor.foo.bar/123852.jpg
   2. mailto:fjuniorli...@gmail.com
   3. http://servidor.com.br/imagens/123456.png
   4. 
http://www.vivaolinux.com.br/artigo/Otimizando-seu-web-server-com-Apache2-+-Lighttpd?pagina=1
   5. http://www.fug.com.br/historico/html/freebsd/
   6. https://www.fug.com.br/mailman/listinfo/freebsd
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-07 Por tôpico Wanderson Tinti
2009/10/7 "Fábio Jr." 

> Olá pessoal, desculpem  off, mas gostaria de algumas opiniões já que o
> servidor em questão roda FreeBSD.
>
> Tenho um servidor que serve conteúdo estático, sendo que grande parte
> deste conteúdo são imagens. Estas imagens estão todas armazenadas em um
> diretório, sendo que há aproximadamente 4 milhões de imagens dentro
> deste diretório.
>
> Acredito que esta estrutura de armazenamento seja, a médio prazo, pouco
> segura e nada dinâmica, tornando escalabilidade e backup praticamente
> impossível via rede, principalmente pelo fato do servidor estar
> hospedado em outro país.
>
> Pensando em uma maneira de resolver este problema, cheguei a uma
> possibilidade, mas que pode não ser a solução correta. Minha sugestão é
> a seguinte:
>
> Dividir estas imagens, em diretórios baseando-se nos 3 últimos números
> do nome do arquivo.( Os arquivos são nomeados em ordem crescente no
> formato {número}.png ) Ex.:
>
> O caminho absoluto do arquivo 123891.png no servidor é
> /imagens/8/91/123891.png. O arquivo 456891.png, também ficará nesta
> mesma pasta. Porém o arquivo 123456.png ficará armazenado na pasta
> /imagens/4/56/123456.png.
>
> A estrutura se baseia sempre na centena do nome do arquivo (891), sendo
> que o número da centena (8) é a pasta pai, e os números da dezena e
> unidade (91) são o nome da pasta filho.
>
> 1ª questão: existe uma maneira de, fazendo uma requisição para
> http://servidor.com.br/imagens/123456.png, o Apache redirecionar ou
> tratar essa URL para o caminho correto, através de uma expressão regular
> utilizando somente um AliasMatch? (pelas minhas pesquisas na
> documentação do Apache não consegui fazê-lo)
>
> 2ª questão: gostaria de sugestões de como estruturar melhor os arquivos,
> para obter uma melhor performance. Outras soluções possíveis seria a
> criação de diretórios ainda mais específicos ou a migração para um
> serviço de storage distribuído.
>
> Obrigado
>
>
Boa noite.

1º questão: A melhor saída é utilizar expressões regulares com AliasMatch
para levar o usuário ao diretório correto. De uma boa lida sobre o assunto.

2º questão: Na minha opinião, você pode utilizar o Lighttpd para servir seus
conteúdos estáticos. Você deverá ter uma melhora significativa na
performance. Esse link deve servir como referência.

http://www.vivaolinux.com.br/artigo/Otimizando-seu-web-server-com-Apache2-+-Lighttpd?pagina=1
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache

2009-10-07 Por tôpico Fábio Jr.
Olá pessoal, desculpem  off, mas gostaria de algumas opiniões já que o 
servidor em questão roda FreeBSD.

Tenho um servidor que serve conteúdo estático, sendo que grande parte 
deste conteúdo são imagens. Estas imagens estão todas armazenadas em um 
diretório, sendo que há aproximadamente 4 milhões de imagens dentro 
deste diretório.

Acredito que esta estrutura de armazenamento seja, a médio prazo, pouco 
segura e nada dinâmica, tornando escalabilidade e backup praticamente 
impossível via rede, principalmente pelo fato do servidor estar 
hospedado em outro país.

Pensando em uma maneira de resolver este problema, cheguei a uma 
possibilidade, mas que pode não ser a solução correta. Minha sugestão é 
a seguinte:

Dividir estas imagens, em diretórios baseando-se nos 3 últimos números 
do nome do arquivo.( Os arquivos são nomeados em ordem crescente no 
formato {número}.png ) Ex.:

O caminho absoluto do arquivo 123891.png no servidor é 
/imagens/8/91/123891.png. O arquivo 456891.png, também ficará nesta 
mesma pasta. Porém o arquivo 123456.png ficará armazenado na pasta 
/imagens/4/56/123456.png.

A estrutura se baseia sempre na centena do nome do arquivo (891), sendo 
que o número da centena (8) é a pasta pai, e os números da dezena e 
unidade (91) são o nome da pasta filho.

1ª questão: existe uma maneira de, fazendo uma requisição para 
http://servidor.com.br/imagens/123456.png, o Apache redirecionar ou 
tratar essa URL para o caminho correto, através de uma expressão regular 
utilizando somente um AliasMatch? (pelas minhas pesquisas na 
documentação do Apache não consegui fazê-lo)

2ª questão: gostaria de sugestões de como estruturar melhor os arquivos, 
para obter uma melhor performance. Outras soluções possíveis seria a 
criação de diretórios ainda mais específicos ou a migração para um 
serviço de storage distribuído.

Obrigado

[]s
Fábio Jr.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd