Рейтинг:0

Apache, Docker, Proxy - изменить адрес в браузере на 127.0.0.1

флаг tr

У меня есть сервер Apache с несколькими сайтами.

Я хотел бы запустить на этом сервере док-контейнер с помощью Mercure и поделиться им в Интернете.

Я нашел информацию в Интернете, что мне нужно использовать ProxyPass и ProxyPassReverse в конфигурации vhost.

Моя конфигурация виртуального хоста:

<VirtualHost *:80>
    ServerName tomaszf.pl
    ServerAlias www.tomaszf.pl

    DocumentRoot /var/www/html/mercurytest/public

    DirectoryIndex /index.php

    <Directory /var/www/html/mercurytest/public>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        FallbackResource /index.php
    </Directory>

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost"
    </FilesMatch>

    <Directory /var/www/html/mercurytest/public/bundles>
        DirectoryIndex disabled
        FallbackResource disabled
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/tomaszf.pl.error.log
    CustomLog ${APACHE_LOG_DIR}/tomaszf.pl.log combined
 
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.tomaszf.pl [OR]
    RewriteCond %{SERVER_NAME} =tomaszf.pl
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
    ServerName tomaszf.pl
    ServerAlias www.tomaszf.pl

    DocumentRoot /var/www/html/mercurytest/public

    DirectoryIndex /index.php

    <Directory /var/www/html/mercurytest/public>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        FallbackResource /index.php
    </Directory>

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost"
    </FilesMatch>

    <Directory /var/www/html/mercurytest/public/bundles>
        DirectoryIndex disabled
        FallbackResource disabled
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/tomaszf.pl.error.log
    CustomLog ${APACHE_LOG_DIR}/tomaszf.pl.log combined

    SSLCertificateFile /etc/letsencrypt/live/tomaszf.pl/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/tomaszf.pl/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    ProxyPass /mercure http://127.0.0.1:8099/
    ProxyPassReverse /mercure http://127.0.0.1:8099/
</VirtualHost>

Докер-контейнер запускается командой:

докер запустить \
    -e ИМЯ_СЕРВЕРА=':80' \
    -e MERCURE_PUBLISHER_JWT_KEY='!ChangeMe!' \
    -e MERCURE_SUBSCRIBER_JWT_KEY='!ChangeMe!' \
    -p 8099:80 \
    -e CORS_ALLOWED_ORIGINS='https://tomaszf.pl' \
    -e ОТЛАДКА=1 \
    -e РАЗРЕШЕНО_АНОНИМНО=1 \
    Dunglas/Mercure Caddy Run -config /etc/caddy/Caddyfile.dev

Проблема: При попытке зайти на сайт tomaszf.pl/mercure адрес в браузере автоматически меняется на 127.0.0.1 и сайт не работает.

Что мне нужно изменить в конфигурации?

Рейтинг:0
флаг vn

Я реализовал ту же конфигурацию, за исключением самозаверяющего сертификата и изменения файла hosts, чтобы указать tomaszf.pl к 127.0.9.1 и я нет перенаправляется с этого хоста.

завиток ответ

Это доказывает, что последняя версия контейнера Данглас/Меркурий: последний из dockerhub перенаправляется правильно. Если у вас возникли проблемы с этим, убедитесь, что у вас есть последний образ (хэш c10597bdf077 для amd64 на момент написания статьи).

Другая проблема, с которой вы столкнетесь, заключается в том, что модуль Caddy лечить не кажется, поддерживает обслуживание модуля в любом месте, кроме корня хоста (т.е. tomaszf.pl Только, нет tomaszf.pl/mercure ). Похоже, это проектное решение, основанное на использовании /.известный префикс (документация Mercure Caddy Module https://caddyserver.com/docs/modules/http.handlers.mercure)

Я бы порекомендовал использовать поддомен (возможно, mercure.tomaszf.pl) и вместо этого обслуживайте модуль оттуда, в корне.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.