Для того чтобы Traefik открывал Nginx по имени хоста, нужно создать следующую конфигурацию.
1. Установите и настройте Docker и Traefik
Вам нужно установить Docker на ваш сервер и настроить его, чтобы он работал с Traefik. Вы можете установить Docker, следуя инструкциям на официальном сайте Docker.
После установки Docker, установите Traefik, используя следующую команду:
docker run --name traefik -p 80:80 -p 443:443 -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/traefik.toml:/traefik.toml -v $PWD/acme.json:/acme.json traefik:v2.2
2. Создайте конфигурацию Nginx
Создайте Dockerfile для Nginx, в котором определите настройки, такие как прослушиваемый порт и конфигурацию сервера. Пример Dockerfile может выглядеть примерно так:
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf COPY app /usr/share/nginx/html EXPOSE 80
Создайте файл nginx.conf с определенной конфигурацией в папке Dockerfile. В этом файле вы можете указать имя хоста и соответствующую конфигурацию. Например:
server { listen 80; server_name example.com; location / { proxy_pass http://backend; } }
3. Подготовьте файл docker-compose.yaml
Определите сервисы, используемые в вашем проекте, в файле docker-compose.yaml. Пример может выглядеть следующим образом:
version: '3' services: traefik: image: traefik:v2.2 ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json nginx: build: context: . dockerfile: Dockerfile restart: always labels: - "traefik.http.routers.nginx.rule=Host(`example.com`)" - "traefik.http.services.nginx.loadbalancer.server.port=80"
В этом примере мы определяем два сервиса - Traefik и Nginx. В разделе "labels" для сервиса Nginx мы указываем правило "Host(example.com
)", которое говорит Traefik, что он должен перенаправлять запросы с хостом example.com на сервис Nginx.
4. Запустите контейнеры
Запустите контейнеры с помощью команды:
docker-compose up -d
Traefik будет прослушивать входящие запросы на порту 80 и перенаправлять их в соответствие с настройками в файле конфигурации и docker-compose.yaml.
Теперь, когда веб-сервер Nginx будет запущен, Traefik будет маршрутизировать запросы, отправляемые на хост example.com, на Nginx, и они будут обрабатываться соответствующим образом.
Это общая концепция того, как настроить Traefik для перенаправления запросов на Nginx по имени хоста. Вам может потребоваться провести дополнительную конфигурацию и настройку в соответствии со своими потребностями и требованиями вашего проекта.