Обратный прокси-сервер Nginx-Traefik в сравнении с поддержкой NGINX FastCGIPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Обратный прокси-сервер Nginx-Traefik в сравнении с поддержкой NGINX FastCGI

Сообщение Anonymous »

Я использую docker-compose.yaml для определения сервисов, необходимых мне для локальной разработки. Недавно я добавил новую Traefik службу, чтобы воспользоваться возможностями Службы разрешения доменных имен, которые предлагает Traefik.
Типичное определение сервиса Traefik:

Код: Выделить всё

version: '3'

services:

traefik:
image: "traefik:v2.6.0"
container_name: coolstuff_solutions_traefik
command:
- "--log.level=DEBUG"
- "--providers.docker"
- "--api.dashboard=true"
- "--entrypoints.web.address=:80"
- "--accesslog.filepath=/data/access.log"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=coolstuff-solutions"
ports:
- "80:80"
- "8080:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "traefik.enable=true"
- "traefik.default.protocol=http"
- "traefik.http.routers.frontend.entrypoints=web"
- "traefik.http.routers.frontend.rule=Host(`coolstuff.localhost`)"
networks:
coolstuff-solutions:
aliases:
- traefikversion: '3'

services:

traefik:
image: "traefik:v2.6.0"
container_name: coolstuff_solutions_traefik
command:
- "--log.level=DEBUG"
- "--providers.docker"
- "--api.dashboard=true"
- "--entrypoints.web.address=:80"
- "--accesslog.filepath=/data/access.log"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=coolstuff-solutions"
ports:
- "80:80"
- "8080:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "traefik.enable=true"
- "traefik.default.protocol=http"
- "traefik.http.routers.frontend.entrypoints=web"
- "traefik.http.routers.frontend.rule=Host(`coolstuff.localhost`)"
networks:
coolstuff-solutions:
aliases:
- traefik
Предположим, у меня уже есть работающая служба NGINX для поддержки моих попыток разработки через указанный порт; может быть указано в файле конфигурации docker-compose.yaml. В моем случае у меня уже был выделенный сервис NGINX:

Код: Выделить всё

nginx:
image: nginx:alpine
container_name: coolstuff_solutions_nginx
volumes:
- ./app:/var/www
- ./sys/nginx:/etc/nginx/conf.d/
labels:
- "traefik.enable=true"
networks:
coolstuff-solutions:
aliases:
- nginx
Следует отметить, что файл default.conf для NGINX ссылается на службу php-fpm с приложением fastcgi_pass:9000; .
Сам по себе NGINX является обратным прокси-сервером, способным по своей природе. Однако я хочу воспользоваться возможностями Traefik.
Можно ли мне смешивать Traefix, NGINX и < strong>PHP-FPM, хочу ли я по-прежнему использовать FastCGI?
Ниже приведена запись docker-compose.yaml для приложения контейнер и связанный с ним файл Dockerfile и конфигурацию NGINX.

Код: Выделить всё

#app service exposing API and any other pre-defined accessible endpoints
app:
build:
context: .
dockerfile: sys/php/Dockerfile
image: coolstuff_solutions:app
container_name: coolstuff_solutions_app
env_file:
- app/.env
environment:
APP_NAME: "CoolStuff Solutions"
working_dir: /var/www
depends_on:
- nginx
volumes:
- ./app:/var/www
- ./app/var/:/var/www/var:rw
- ./sys/php/default.ini:/usr/local/etc/php/conf.d/local.ini
labels:
- "traefik.enable=true"
- "traefik.default.protocol=http"
- "traefik.http.routers.app.entrypoints=web"
- "traefik.http.routers.app.rule=Host(`app.coolstuff.localhost`)"
- "traefik.http.services.app.loadbalancer.server.port=8080"
- "traefik.backend=app"
networks:
coolstuff-solutions:
aliases:
- app

#NGINX for PHP-FPM service
server {
listen 80;
index index.php index.html;
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}

# PHP-FPM Dockerfile

FROM php:8.2-fpm

ENV USER=www
ENV GROUP=www

# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
curl \
libldap2-dev \
libpng-dev \
libonig-dev \
libxml2-dev \
libgd-dev \
zip \
zlib1g-dev \
librabbitmq-dev \
unzip \
ghostscript \
fontconfig \
graphviz

RUN pecl install amqp && docker-php-ext-enable amqp

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Set timezone
RUN rm /etc/localtime \
&& ln -s /usr/share/zoneinfo/Africa/Harare /etc/localtime \
&& "date"

# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd intl

# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer

# Setup working directory
WORKDIR /var/www/

# Create User and Group
RUN groupadd -g 1000 ${GROUP} && useradd -u 1000 -ms /bin/bash -g ${GROUP} ${USER}

# Grant Permissions
RUN chown -R ${USER} /var/www

# Select User
USER ${USER}

# Copy permission to selected user
COPY --chown=${USER}:${GROUP} . .

EXPOSE 9000

CMD ["php-fpm"]
На мой взгляд, должны быть средства привязки Traefik к NGINX, чтобы мы могли извлечь выгоду из FastCGI, но тот факт, что мы говорим с двумя продуктами прокси-сервера, похоже, что-то не добавляет вверх.

Подробнее здесь: https://stackoverflow.com/questions/786 ... gi-support
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Обратный прокси-сервер Nginx-Traefik в сравнении с поддержкой NGINX FastCGI
    Anonymous » » в форуме Php
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Обратный прокси-сервер Nginx к удаленному серверу php-fpm с помощью fastcgi [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Доступ к Netdata через обратный прокси-сервер Traefik
    Anonymous » » в форуме Linux
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Ошибка прокси-сервера Прокси-сервер получил неверный ответ от вышестоящего сервера. Прокси-сервер не смог обработать зап
    Anonymous » » в форуме Apache
    0 Ответы
    192 Просмотры
    Последнее сообщение Anonymous
  • Traefik Прокси acme.jason
    Anonymous » » в форуме Linux
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»