繁体   English   中英

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

[英]Docker php-fpm + nginx / sometimes files not found on php file

我目前陷入一个问题。 我有一个运行多个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如果可以帮助的话,但是我和这个码头工完全一样地工作(不同的端口),并且我的php文件调用没有问题。

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

我模拟了相同的场景,这是结果。

ping相同的主机名,但获得不同的dns分辨率

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM