Docker php-fpm + nginx /有时在php文件中找不到文件

时间:2019-03-06 19:52:04

标签: php docker nginx docker-compose

我目前陷入困境。 我有一个运行多个docker的服务器。

在这里,我需要放置一个php nginx。

我有一个像这样的docker-compose文件:

version: 2
services:
   web:
      image: nginx:latest
      ports:
         - 'XXXX:80'
         - 'XXXX:443'
      volumes:
         - ./code:./code
         - ./site.conf:/etc/nginx/conf.d/default.conf
      environnement:
         - VIRTUAL_HOST:...
         - LETSENCRYPT_HOST:....
         - LETSENCRYPT_MAIL:....
      networks:
         - default
   php:
      build:
         context: ./php
      volumes:
         - ./code:/code
      networks:
         - default
 networks:
   default:
      external:
         name:webproxy

我的网络使我获得了自动加密的letencrypt ssl

我用于php的dockerfile是:

FROM php:7.2-fpm
RUN apt-get update \
  && apt-get install -y --no-install-recommends libpq-dev \
  && docker-php-ext-install mysqli pdo_pgsql pdo_mysql

我的配置是:

server{
  listen 80
  index index.php index.html
  server_name localhost
  error_log /var/log/nginx/error.log
  access_log /var/log/nginx/access.log
  root /code
  location ~ \.php$ {
     try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass php 9000;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info
  }
}

我的文件夹结构类似于:

- imgFolder
- GameFolder
    - index.html
    - service.php
    - imgFolder
    - cssFolder
- desktop.html
- mobile.html
- main.css

一切似乎都很好,我让我的docker-compose组成了-d 我所认为的一切似乎都很好: 。 HTML呈现良好 。 SSL也很适用

但是有时候(不是所有时间,而是一半时间),我的php文件都没有在ajax请求中找到(得到了在网络调试中找不到的404文件)

有人知道为什么有时找不到我的service.php吗?

Dunno,如果它可以帮助,但我得到了完全相同的docker compose与此一起工作(不同的端口),并且我的php文件调用没有问题。

1 个答案:

答案 0 :(得分:0)

您遇到此问题是因为在同一网络中有多个具有相同主机名(php)的容器。

我模拟了相同的情况,这是结果。

pinging same hostname, but getting different dns resolutions

相关问题