Сделано два простых докера:
version: '3.3'
services:
nginx:
image: nginx:latest
ports:
- "6080:80"
- "543:443"
volumes:
- ./nginx/core:/etc/nginx/conf.d
- ./nginx/www:/var/www/
- ./nginx/logs:/var/log/nginx/
- ./nginx/html:/usr/share/nginx/html/
links:
- php
php:
build: ./php
container_name: php-fpm
volumes:
- ./nginx/www:/var/www
Настройки nginx:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/default.log;
error_log /var/log/nginx/default-error.log;
location / {
root /var/www/site.loc;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
Если в дирректорию с локальным доменом положить html-файл - он отображается нормально, если .php - "502 Bad Gateway nginx/1.15.8"
И в логах nginx:
2019/01/23 07:57:21 [error] 9#9: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.24.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:6080"
Ошибка, насколько понимаю в том, что nginx не видит php-fmp, который находится в другом докере. Как правильно настроить это?
P.S.
docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77071ee4b780 nanoninja/php-fpm:latest "docker-php-entrypoi…" About a minute ago Up About a minute 9000/tcp docker_test3_php_1
dbe3d92b037f nginx:latest "nginx -g 'daemon of…" 39 minutes ago Up 21 minutes 0.0.0.0:6080->80/tcp, 0.0.0.0:543->443/tcp docker_test2_nginx_1