Eu tenho nginx e php-fpm rodando no Docker. Ao usar o nome do host do meu sistema Docker (docker1.freekb.net), a página phpinfo.php é exibida no navegador, assim eu sei que tenho nginx e php-fpm configurados corretamente para servir páginas PHP. Aqui está o bloco do servidor em /etc/nginx/conf.d/default.conf. As solicitações do nginx na porta 80 são encaminhadas para o PHP na porta 9000.
server {
listen 80;
server_name stage.freekb.net;
root /var/www/stage;
index index.html phpinfo.php;
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index phpinfo.php;
include fastcgi_params;
}
}
Eu tenho a configuração do HAProxy para encaminhar solicitações para o nginx. Aqui está meu bloco de escuta em /etc/haproxy/haproxy.cfg. Quando vou para http://haproxy.freekb.net/index.html , a página de boas-vindas do nginx é exibida, assim eu sei que o HAProxy é capaz de encaminhar solicitações para o nginx.
No entanto, quando vou para http://haproxy.freekb.net/phpinfo.php , o phpinfo.php é baixado para o meu PC local. Eu suspeito que isso significa que há algo errado com fastcgi. Não tenho certeza do que precisa mudar para que as páginas PHP sejam exibidas no navegador ao usar o HAProxy.
listen nginx
bind *:80
mode tcp
balance roundrobin
server nginx1 docker1.freekb.net:80 check