Puncte:0

Apache, Docker, Proxy - schimbați adresa în browser la 127.0.0.1

drapel tr

Am un server Apache cu câteva site-uri.

Aș dori să rulez pe acest container docker de server cu Mercure și să îl partajez pe Internet.

Am găsit informații pe Internet că am nevoie pentru a folosi ProxyPass și ProxyPassReverse în configurația vhost.

Configurația mea 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>

Containerul Docker este lansat cu comanda:

docker run \
    -e SERVER_NAME=':80' \
    -e MERCURE_PUBLISHER_JWT_KEY='!ChangeMe!' \
    -e MERCURE_SUBSCRIBER_JWT_KEY='!ChangeMe!' \
    -p 8099:80 \
    -e CORS_ALLOWED_ORIGINS='https://tomatszf.pl' \
    -e DEBUG=1 \
    -e ALLOW_ANONYMOUS=1 \
    dunglas/mercure caddy run -config /etc/caddy/Caddyfile.dev

Problemă: Când încercați să intrați pe site-ul web tomaszf.pl/mercure, adresa din browser este schimbată automat la 127.0.0.1 și site-ul nu funcționează.

Ce trebuie să schimb în configurație?

Puncte:0
drapel vn

Am implementat aceeași configurație, cu excepția unui certificat autosemnat și modificarea fișierului meu hosts la punct tomaszf.pl la 127.0.9.1 si eu sunt nu fiind redirecționat în afara acelei gazde.

răspunsul buclei

Asta dovedește că cea mai recentă versiune a containerului dunglas/mercure:latest de la dockerhub redirecționează corect. Dacă întâmpinați probleme cu aceasta, verificați că aveți cea mai recentă imagine (hash c10597bdf077 pentru amd64 la momentul scrierii).

Cealaltă problemă cu care te vei confrunta este modulul caddy mecure nu par să accepte servirea modulului oriunde, în afară de rădăcina gazdei (de ex. tomaszf.pl numai, nu tomaszf.pl/mercure ). Aceasta pare a fi o decizie de proiectare bazată pe utilizarea /.bine cunoscute prefix (documentația modulului Mercure Caddy https://caddyserver.com/docs/modules/http.handlers.mercure)

Aș recomanda utilizarea unui subdomeniu (poate mercure.tomaszf.pl) și serviți modulul de acolo, la rădăcină, în schimb.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.