Помилка 404 повернення зворотного проксі-контейнера Nginx Не знайдено у файлах .php


2

У мене є контейнер проксі-сервера nginx, а також nginx і php-fpm. У мене немає проблем із обслуговуванням файлів .html, але коли я намагаюся перейти до .php, я отримую помилку 404 Not Found.

Це docker-compose.yml зворотного проксі-сервера nginx:

version: "2"

services:
  nginx-proxy:
    image: jwilder/nginx-proxy:alpine
    container_name: nginx-proxy
    ports:
      - "8080:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./vhost.d:/etc/nginx/vhost.d

networks:
  default:
    external:
      name: nginx-proxy-net

Це docker-compose.yml мого веб-сайту:

version: "2"

services:
  nginx:
    image: nginx:latest
    expose:
      - 80
    restart: always
    volumes:
      - ./html:/usr/share/nginx/html
    environment:
      - VIRTUAL_HOST=vhost.example.it
    container_name: vhost-html

  php:
    image: php:7-fpm
    expose:
      - 9000
    restart: always
    volumes:
      - ./html:/usr/share/nginx/html
    environment:
      - VIRTUAL_PROTO=fastcgi
      - VIRTUAL_ROOT=/usr/share/nginx/html
      - VIRTUAL_PORT=9000
      - VIRTUAL_HOST=vhost-php.local
    container_name: vhost-php

networks:
  default:
    external:
      name: nginx-proxy-net

Також я створив файл конфігурації per-VIRTUAL_HOST всередині папки vhost.d:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass vhost-php:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
}

Чи маєте ви якесь уявлення про те, як виправити цю помилку?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.