Cabeçalho personalizado do Apache com uma variável de ambiente

1

Eu tento definir um cabeçalho HTTP personalizado com uma variável de ambiente ** com o servidor Apache 2.4.6 e o headers_module.

Eu trabalho dentro de um HTTP VHost na porta 80.

Tudo funciona conforme o esperado com exemplos básicos como:

Header set MyHeader "%D %t"

Eu li a documentação do Apache de mod_headers: link

Diz-se que se pode acessar a variável de ambiente usando %{ENVVARNAME}e

(com ENVVNAME o nome da variável ENV)

Eu também li outro post, mas não tenho uma resposta real: O Apache define o cabeçalho personalizado com uma variável evironment

Mas meu problema é adicionar um cabeçalho do que identificar meu Apache Server como o valor do ambiente HOSTNAME

  1. eu tentei isso

Header Set X-Serv %{HOSTNAME}e

Sem sucesso: sempre exiba o X-Serv: {null} em vez do valor

  1. Eu também tentei:

SetEnv myvar ${HOSTNAME} Header set X-Serv %{myvar}e

Sem sucesso: ele é exibido nos cabeçalhos HTTP: X-Serv:% {myvar} e

Eu também tentei algumas outras combinações diferentes:

Por favor, note: Minha variável de ambiente HOSTNAME existe e é exibida no comando 'env' com o usuário do apache possuindo o processo httpd

Alguma ideia?

    
por S. Di Cioccio 13.03.2018 / 17:25

2 respostas

1

Encontrou uma maneira de fazê-lo funcionar:

  • Assegure-se de que o módulo esteja ativado (mod_headers) ou ative se necessário

    a2enmod headers
    
  • em / etc / apache2 / envvars add

    export HOSTNAME='uname -n'
    
  • na cláusula <VirtualHost>

    Header set apachehost ${HOSTNAME}
    
  • Reinicie ou recarregue o serviço httpd

    service apache2 restart
    
por 29.03.2018 / 18:09
1

Você precisa declarar quais variáveis de ambiente do sistema deseja usar na diretiva PassEnv

Um exemplo de trabalho seria:

PassEnv HOSTNAME
Header Set X-Serv %{HOSTNAME}e
    
por 05.04.2018 / 22:45