Aller au contenu

Nginx - PHP fpm : timeout

Featured Replies

Posté(e)

Bonjour à tous,

NAS : DS425+

Version DSM : 7.3.2

Niveau : néophyte

Images :

Interface : DSM Container Manager


J'ai un problème avec ContainerManager. J'ai créé un projet de test qui n'utilise que ces 2 containers : nginx et php-fpm.
Le problème c'est qu'il semble que nginx n'arrive pas à communiquer avec php alors qu'ils sont sur le même réseau.
Quand je charge mon site, j'ai une 504 alors que mon fichier index.php ne contient qu'un `<?php echo "Hello world";`.

Je me suis fait aidé par ChatGPT pour qu'il puisse m'indiquer des directions d'analyse mais sans résolution.
Je me suis fait également aidé d'un admin système qui a l'habitude de travailler avec docker et pour lui la configuration est bonne.

Du coup je viens vous solliciter pour savoir si sur Synology il y a quelque chose à faire en plus dans la configuration pour que cela fonctionne.

Voici mes fichiers en question :


docker-compose.yaml

networks:
  testing:

services:
  nginx:
    container_name: "testing-nginx"
    image: nginx:latest
    restart: unless-stopped
    networks:
      - testing
    volumes:
      - ./configs/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./configs/nginx/sites:/etc/nginx/sites-available
      - /volume1/www/test/testing:/var/www
    ports:
      - "8880:80"
      - "8443:443"
    depends_on:
      - php

  php:
    image: php:8.4-fpm
    container_name: "testing-php"
    restart: unless-stopped
    networks:
      - testing
    volumes:
      - /volume1/www/test/testing:/var/www


configs/nginx/nginx.conf

user  nginx;
worker_processes  4;
#daemon off;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log  /var/log/nginx/access.log;
    #access_log /dev/stdout;
    #error_log /dev/stderr;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-available/*.conf;
}

configs/nginx/sites/default.conf

server {

    listen 80;

    server_name mywebsite.com;
    root /var/www/public/;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param HTTPS on;
        fastcgi_param HTTP_X_FORWARDED_PROTO $http_x_forwarded_proto;

        fastcgi_index index.php;
    }

    location ~ /\.ht {
        deny all;
    }
}



J'ai testé nginx en modifiant le location / pour retourner OK, et ça a fonctionné. Du coup j'arrive bien à atteindre le container nginx. C'est vraiment la liaison entre nginx et php qui semble ne pas se faire :(.

Modifié par Cédric Audurieau
mise en forme du code

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Account

Navigation

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.