Re: [FUG-BR] [OFF] Estrutura de armazenamento de arquivos e redirecionamento no Apache
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
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/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
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/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
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