Estou tentando fazer do Nginx um proxy reverso para Apache em um servidor centos 7.
Aqui está o que eu fiz até agora:
Crie um arquivo de configuração para Nginx:nano /etc/nginx/conf.d/default.conf
server {
listen 80;
root /usr/share/nginx/html/;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
Altere 2 linhas em/etc/httpd/conf/httpd.conf:
Listen 127.0.0.1:8080
DocumentRoot "/usr/share/nginx/html/"
Criei um arquivo chamado info.php em /usr/share/nginx/html e coloquei <?php infophp();?>
nele, mas quando tento carregar a páginahttp://Meu_Ip/info.phpRecebo um pop-up para baixar o arquivo, mas quero que o arquivo seja executado.
passei esse comandohttpd-M | grepphp para ver se o módulo Php está presente no meu servidor web Apache, e recebo "php7_module (shared)", então acho que sim.
Qualquer ajuda seria apreciada, obrigado.
Henrique
obs: quando eu continuarhttp://Meu_IPRecebo a página inicial padrão do Nginx p.s2: para quem pergunta, já postei sobre um problema relacionado no serverfault (erro 403), mas parece que não tenho mais o problema (ou seja, se eu for verhttp://Meu_IP/any_css_file.csspor exemplo, está bem exibido, sem erros)
Responder1
Você precisa ter uma instância do PHP FPM rodando em seu servidor para executar os scripts php. Você pode verificar executando
find / -type d -iname *fpm*
Se isso retornar alguns resultados, então já está instalado. Agora, para descobrir a porta/soquete que está escutando, você pode executar:
find / -type d -iname *fpm* | xargs grep -r "^listen[= ]"
Que deve retornar algo assim:
/etc/php/7.2/fpm/pool.d/www.conf:listen = /run/php/php7.2-fpm.sock
No diretório de configuração do Nginx (normalmente /etc/nginx/
), você já pode ter um arquivo fastcgi_params
, se não, crie um e copie o exemploaqui
Em seguida, altere seu bloco de localização do php para incluir seu arquivo de configuração e passe a solicitação para o php fpm usando a porta/soquete retornada do comando anterior, assim:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
include fastcgi_params;
}
Agora reinicie o Nginx e deve funcionar.