Puncte:-1

Nu se poate porni Mercure Hub pe Debian 11 cu supervizare, în afara imaginii Docker

drapel ca

Încerc să execut hubul Mercure de la supervizor, dar nu este posibil pentru mine. Mercure se află în aceeași mașină de server web cu virtualhost SSL pentru pami54.local domeniu.

[program:mercure]
mediu=JWT_KEY="m3rcu353cr37pa55pra53DEV"; CORS_ALLOWED_ORIGINS="https://pami54.local"; PUBLISH_ALLOWED_ORIGINS="*"; ADDR="pami54.local:3000"
command=/home/frizquierdo/mercureLinux/mercure run -config /home/frizquierdo/mercureLinux/Caddyfile
process_name=%(program_name)s_$(process_num)s
numprocs=1
autostart=true
#directory=/tmp
pornire automată=adevărat
startsecs=5
startretry=10
redirect_stderr=fals
stdout_capture_maxbytes=1MB
stderr_capture_maxbytes=1MB
stdout_logfile=/var/log/supervisor/mercureout.log
stderr_logfile=/var/log/supervisor/mercureerror.log

EDITAȚI | ×:

Am găsit o soluție parțială. În Caddyfile am dezactivat serverul caddy de pe portul 80, setând directiva auto_https la „disable_redirects”, rămânând Caddyfile în acest fel:

# Aflați cum să configurați Mercure.rocks Hub pe https://mercure.rocks/docs/hub/config
{
   {$GLOBAL_OPTIONS}
   auto_https disable_redirects
}

pami54.local:3000

Buturuga

tls /etc/apache2/ssl-cert/pami54.local.crt /etc/apache2/ssl-cert/pami54.local.key

traseu {
    codificați zstd gzip

    mercure {
        # Transport de utilizat (implicit la Bolt)
        transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
        # Cheie JWT pentru editor
        publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
        # Cheie JWT abonatului
        subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
        # Directive suplimentare
        cors_origins https://pami54.local
        publish_origins *
        {$MERCURE_EXTRA_DIRECTIVES}
    }

    răspunde /healthz 200

    răspunde „Nu a fost găsit” 404
}

Configurația sa virtualhost:

<IfModule mod_ssl.c>
 #SSLStaplingCache "shmcb:${SRVROOT}/logs/ssl_stapling(32768)"
 <VirtualHost *:443>
   ServerName pami54.local
   ServerAlias wwww.pami54.local

   DocumentRoot "/var/www/html/pami54.local/public"
   DirectoryIndex index.php

   <Directory "/var/www/html/pami54.local/public/">
    AllowOverride All
    Order Allow,Deny
    Allow from All
    #Require local
    Require all granted

    <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
   </Directory>

   SSLEngine on
   SSLProtocol all -SSLv3 -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
   SSLCertificateFile "/etc/apache2/ssl-cert/pami54.local.crt"
   SSLCertificateKeyFile "/etc/apache2/ssl-cert/pami54.local.key"
   SSLUseStapling off

   <FilesMatch "\.(cgi|shtml|pl|asp|php)$">
    SSLOptions +StdEnvVars
   </FilesMatch>

   BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

   SSLProxyEngine On
   ProxyRequests Off
   ProxyPreserveHost On
   #ProxyPass '/.well-known/mercure' 'https://pami54.local:3000/.well-known/mercure' connectiontimeout=300 timeout=300
   ProxyPass '/.well-known/mercure' 'https://pami54.local:3000/.well-known/mercure'
   ProxyPassReverse '/.well-known/mercure' 'https://pami54.local:3000/.well-known/mercure'
 </VirtualHost>
</IfModule>

În acest fel, clienții se pot conecta la Mercure https://pami54.local/.well-known/mercure, chiar și atunci când are loc o deconectare, clientul se reconecta cu succes la hub, dar când serverul (aplicația web) încearcă să publice o notificare pe hub, eroare symfony http client log:

[2022-04-27T19:29:40.857698-04:00] http_client.INFO: Solicitare: „POST https://pami54.local/.well-known/mercure” [] []
[2022-04-27T19:29:40.871491-04:00] messenger. AVERTISMENT: Eroare aruncată la manipularea mesajului App\Message\NotificacionMarcarComoLeidaMessage. Se trimite pentru reîncercare #1 folosind o întârziere de 1000 ms. Eroare: „Gestionarea „App\Message\NotificacionMarcarComoLeidaMessage” a eșuat: a eșuat la trimiterea unei actualizări.” {"message":{"App\Message\NotificacionMarcarComoLeidaMessage":[]},"class":"App\Message\NotificacionMarcarComoLeidaMessage","retryCount":1,"delay":1000,"error": „Gestionarea \"App\Message\NotificacionMarcarComoLeidaMessage\” a eșuat: a eșuat trimiterea unei actualizări.","exception":"[obiect] (Symfony\Component\Messenger\Exception\HandlerFailedException(cod: 0) : Gestionarea \"App\Message\NotificacionMarcarComoLeidaMessage\" a eșuat: a eșuat trimiterea unei actualizări. la /var/www/html/pami54.local/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php:129)\n[ excepție anterioară] [obiect] (Symfony\Component\Mercure\Exception\RuntimeException(cod: 0): Nu s-a putut trimite o actualizare.la /var/www/html/pami54.local/vendor/symfony/mercure/src/Hub.php:104)\n[excepția anterioară] [obiect] (Symfony\Component\HttpClient\Exception\TransportException( cod: 0): Solicitarea nu a fost procesată și poate fi reîncercată în siguranță la /var/www/html/pami54.local/vendor/symfony/http-client/Response/CommonResponseTrait.php:148)\n[excepția anterioară] [ obiect] (Symfony\Component\HttpClient\Exception\TransportException(cod: 0): Solicitarea nu a fost procesată și poate fi reîncercată în siguranță la /var/www/html/pami54.local/vendor/symfony/http- client/Chunk/ErrorChunk.php:65)\n[excepție anterioară] [obiect] (Amp\Http\Client\Connection\UnprocessedRequestException (cod: 0): cererea nu a fost procesată și poate fi reîncercată în siguranță la /var/www/html/pami54.local/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php:117)\n[excepția anterioară] [obiect] (Amp\Http\Client\SocketException( cod: 0): conexiunea la „pami54.local:443” a eșuat la /var/www/html/pami54.local/vendor/amphp/http-client/ src/Connection/DefaultConnectionFactory.php:118)\n[excepția anterioară] [obiect] (Amp\Socket\ConnectException(cod: 111): Conexiune la tcp://pami54.local:443 refuzată la /var/www /html/pami54.local/vendor/amphp/socket/src/DnsConnector.php:108)"} []

Ce înseamnă această eroare că aruncă componenta Symfony HTTP CLIENT? Credeam că am rezolvat problema. Cel puțin clienții conectează o reconectare la hub, acum problema este când aplicația web încearcă să publice în hub-ul Mercure.

Trebuie să spun că mediul meu local nu are un server dns, totul este cu virtualhost local și numele de domenii declarat în /etc/hostname.conf de mașină virtuală Debian:

#/etc/hostname.conf     
debiandev
pami54.local
djdomi avatar
drapel za
și care este întrebarea legată de afaceri? Dacă încercați să accesați serviciul printr-un server web prin portul implicit, atunci un proxy invers s-ar potrivi nevoilor dvs.
Francisco avatar
drapel ca
@djdomi Am actualizat postarea cu o configurare a gazdei virtuale. Problema este cu serverul mercure (caddy), dacă am setat în Caddyfile că trebuie să ruleze peste portul 3000, de ce de la supervisord încearcă să ruleze peste portul 80???
djdomi avatar
drapel za
ce s-a întâmplat în timp ce opriți apache și încercați să porniți mai întâi serviciul? a doua folosiți grep -R 80 /path/to/configdir dacă ați setat din greșeală portul 80
Puncte:0
drapel ca

Am găsit o soluție parțială. În Caddyfile am dezactivat serverul caddy pe portul 80, setarea auto_https directivă la „disable_redirects”, rămânând Caddyfile pe aici:

# Aflați cum să configurați Mercure.rocks Hub pe https://mercure.rocks/docs/hub/config
{
   {$GLOBAL_OPTIONS}
   auto_https disable_redirects
}

pami54.local:3000

Buturuga

tls /etc/apache2/ssl-cert/pami54.local.crt /etc/apache2/ssl-cert/pami54.local.key

traseu {
    codificați zstd gzip

    mercure {
        # Transport de utilizat (implicit la Bolt)
        transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
        # Cheie JWT pentru editor
        publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
        # Cheie JWT abonatului
        subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
        # Directive suplimentare
        cors_origins https://pami54.local
        publish_origins *
        {$MERCURE_EXTRA_DIRECTIVES}
    }

    răspunde /healthz 200

    răspunde „Nu a fost găsit” 404
}

Acum, este posibil ca clienții să se conecteze la hub, dar aplicația web nu poate publica pe el.

Am actualizat postarea.

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.