Сохранить внешний порт и раздавать user/pictures через nginx

nginx слушает 80 внутри контейнера, снаружи публикуется HTTP_PORT.
Эгея с E2_SYNTH_URLS собирает абсолютные URL из FastCGI-параметров,
поэтому HTTP_HOST и SERVER_PORT берутся из NGINX_EXTERNAL_PORT
(тот же HTTP_PORT). Редиректы nginx делаются относительными.

Шаблон монтируется из docker/nginx/, а не из несуществующего ./nginx/.
Каталог data монтируется в nginx только для чтения, чтобы location
статики отдавал pictures и файлы из user. Сервис nginx собирается
из того же Dockerfile (target nginx) и ждёт здоровый php-fpm.
This commit is contained in:
m9k authored and latypov committed 2026-09-30 13:51:16 +07:00
1 parent 9ed3f57eb8
commit 857fd0674e
2 files changed
+20 -4

No files matched your search

+12 -2
View File
@@ -82,11 +82,20 @@ services:
- backend
nginx:
build:
context: .
target: nginx
args:
EGEYA_VERSION: ${EGEYA_VERSION:-4199}
EGEYA_URL: ${EGEYA_URL:-}
EGEYA_SHA256: ${EGEYA_SHA256:-}
image: ${EGEYA_NGINX_IMAGE:-local/egeya-nginx}:${EGEYA_VERSION:-4199}
restart: unless-stopped
depends_on:
- php
php:
condition: service_healthy
environment:
NGINX_SERVER_NAME: ${NGINX_SERVER_NAME:-_}
@@ -97,7 +106,8 @@ services:
- "${HTTP_BIND:-127.0.0.1}:${HTTP_PORT:-8080}:80"
volumes:
- ./nginx/egeya.conf.template:/etc/nginx/templates/egeya.conf.template:ro
- ./data:/var/www/egeya-data:ro
- ./docker/nginx/egeya.conf.template:/etc/nginx/templates/egeya.conf.template:ro
networks:
- frontend
+8 -2
View File
@@ -7,6 +7,9 @@ server {
keepalive_timeout 70;
client_max_body_size ${NGINX_CLIENT_MAX_BODY_SIZE};
absolute_redirect off;
port_in_redirect off;
root /var/www/html;
index index.php index.html;
@@ -42,9 +45,12 @@ server {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_HOST $http_host;
fastcgi_param HTTP_HOST $host:${NGINX_EXTERNAL_PORT};
fastcgi_param SERVER_NAME $host;
fastcgi_param SERVER_PORT ${NGINX_EXTERNAL_PORT};
fastcgi_param HTTP_X_FORWARDED_HOST $host;
fastcgi_param HTTP_X_FORWARDED_PORT ${NGINX_EXTERNAL_PORT};
fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
fastcgi_param E2_SYNTH_URLS true;
@@ -59,4 +65,4 @@ server {
location ~ \.psa$ {
deny all;
}
}
}