nginx + apache2.4 + php-fpm - SERVIDOR [“REMOTE_ADDR”] e php_admin_value

4

Estou tentando obter o trabalho do servidor da maneira nginx- > apache2.4- > php-fpm (via mod_proxy_fcgid) (nginx para servir arquivos estáticos) (não tenho certeza se o apache é necessário agora) . Funciona, mas tenho poucas perguntas.

Quando usei o apache2.2 com o php como módulo do apache (no servidor antigo), eu poderia definir o php_admin_value como para cada host virtual, por exemplo, php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]" . Agora, quando estou usando o php-fpm, o apache não entende isso e não inicia. Como posso definir esses valores para cada host virtual usando o php-fpm?

A segunda pergunta é: como eu faço o _SERVER ["REMOTE_ADDR"] preenchido com o endereço remoto real? Com nginx + apache + php como módulo do apache foi resolvido com mod rpaf, mas a partir de agora _SERVER ["REMOTE_ADDR"] exibe 127.0.0.1.

Última pergunta. Se eu decidir apenas usar o nginx + php-fpm, qual funcionalidade "essencial" perderei descartando o apache?

UPDATE 1.
Aparentemente mod_rpaf não estava fazendo o que deveria fazer. O Apache realmente fornece mod oficial com funcionalidade semelhante para o 2.4. No caso de alguém precisar também, aqui está como você consegue:
1. wget link
2. apxs -cia mod_remoteip.c
3. Habilitar mod LoadModule remoteip_module usr / lib / apache2 / modules / mod_remoteip.so
4. Configurar mod

<IfModule remoteip_module>
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
</IfModule>

Nota: Etapa 4 Depende da configuração do nginx. Eu suponho que funcionaria com o X-Forwarded-To também. Com isso, o problema 2 está resolvido.

UPDATE 2.
Essas opções podem ser definidas nos arquivos de configuração dos pools como php_admin_value[open_basedir] , por exemplo. Isso requer um pool separado para cada host virtual que não é tão bom, mas como eu só tenho 4 hosts virtuais, ele não fica muito confuso.
Então, o problema # 1 está resolvido.

    
por Igor Yavych 15.12.2013 / 21:07

2 respostas

4

Isso pode ser definido com:

fastcgi_param PHP_VALUE 'sendmail_path "/usr/sbin/sendmail -t -i -f [email protected]"';

Se você tiver vários valores para passar, todos eles devem estar no mesmo PHP_VALUE , separados por \n .

fastcgi_param PHP_VALUE 'allow_url_fopen 0\nmemory_limit 64M'
    
por 15.12.2013 / 21:22
0
  1. Adicione o IP remoto aos cabeçalhos HTTP (X-Forwarded-For) para o apache adicionando o seguinte ao nginx:

    proxy_set_header X-Forwarded-Para $ remote_addr;

  2. Use o módulo do apache mod_extract_forwarded para extrair esses IP's

por 15.12.2013 / 22:12