Score:-1

ไม่สามารถเริ่ม Mercure Hub บน Debian 11 ด้วย Supervisord นอกเหนือไปจาก Docker Image

ธง ca

ฉันพยายามเรียกใช้ฮับ Mercure จากหัวหน้างาน แต่เป็นไปไม่ได้สำหรับฉัน Mercure อยู่ในเครื่องของเว็บเซิร์ฟเวอร์เดียวกันกับ SSL virtualhost สำหรับ pami54.local โดเมน.

[โปรแกรม:เมอร์เคียว]
สภาพแวดล้อม = 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=%(ชื่อโปรแกรม)s_$(process_num)s
numprocs=1
autostart = จริง
#ไดเรกทอรี=/tmp
รีสตาร์ทอัตโนมัติ = จริง
startecs=5
startretries=10
redirect_stderr=เท็จ
stdout_capture_maxbytes=1MB
stderr_capture_maxbytes=1MB
stdout_logfile=/var/log/supervisor/mercureout.log
stderr_logfile=/var/log/supervisor/mercureerror.log

แก้ไข:

ฉันได้ค้นพบวิธีแก้ปัญหาบางส่วนแล้ว ใน Caddyfile ฉันปิดใช้งานเซิร์ฟเวอร์แคดดี้ที่พอร์ต 80 ตั้งค่าคำสั่ง auto_https เป็น 'disable_redirects' โดยคง Caddyfile ไว้ด้วยวิธีนี้:

# เรียนรู้วิธีกำหนดค่า Mercure.rocks Hub บน https://mercure.rocks/docs/hub/config
{
   {$GLOBAL_OPTIONS}
   auto_https enable_redirects
}

pami54.local:3000

บันทึก

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

เส้นทาง {
    เข้ารหัส zstd gzip

    เมอร์เคียว {
        # การขนส่งเพื่อใช้ (ค่าเริ่มต้นคือ Bolt)
        transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
        # คีย์ผู้เผยแพร่ JWT
        Publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
        # รหัสสมาชิก JWT
        subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
        #คำแนะนำเพิ่มเติม
        cors_origins https://pami54.local
        เผยแพร่_กำเนิด *
        {$MERCURE_EXTRA_DIRECTIVES}
    }

    ตอบกลับ /healthz 200

    ตอบกลับ "ไม่พบ" 404
}

การกำหนดค่า 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>

ด้วยวิธีนี้ลูกค้าสามารถเชื่อมต่อกับ Mercure บน https://pami54.local/.well-known/mercureแม้ว่าจะมีการตัดการเชื่อมต่อเกิดขึ้น ไคลเอนต์ก็เชื่อมต่อกับฮับอีกครั้งได้สำเร็จ แต่เมื่อเซิร์ฟเวอร์ (webapp) พยายามเผยแพร่การแจ้งเตือนบนฮับ ข้อผิดพลาดบันทึกไคลเอนต์ symfony http:

[2022-04-27T19:29:40.857698-04:00] http_client.INFO: คำขอ: "POST https://pami54.local/.well-known/mercure" [ ] []
[2022-04-27T19:29:40.871491-04:00] messenger.WARNING: เกิดข้อผิดพลาดขณะจัดการข้อความ App\Message\NotificacionMarcarComoLeidaMessage กำลังส่งเพื่อลองใหม่ #1 โดยใช้การหน่วงเวลา 1,000 มิลลิวินาที ข้อผิดพลาด: "การจัดการ "App\Message\NotificacionMarcarComoLeidaMessage" ล้มเหลว: ไม่สามารถส่งการอัปเดตได้" {"message":{"App\Message\NotificacionMarcarComoLeidaMessage":[]},"class":"App\Message\NotificacionMarcarComoLeidaMessage","retryCount":1,"delay":1000,"error": "การจัดการ \"App\Message\NotificacionMarcarComoLeidaMessage\" ล้มเหลว: ไม่สามารถส่งการอัปเดตได้","exception":"[object] (Symfony\Component\Messenger\Exception\HandlerFailedException(code: 0) : การจัดการ \"App\Message\NotificacionMarcarComoLeidaMessage\" ล้มเหลว: ไม่สามารถส่งการอัปเดตที่ /var/www/html/pami54.local/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php:129)\n[ ข้อยกเว้นก่อนหน้า] [วัตถุ] (Symfony\Component\Mercure\Exception\RuntimeException(code: 0): ไม่สามารถส่งการอัปเดตที่ /var/www/html/pami54.local/vendor/symfony/mercure/src/Hub.php:104)\n[ข้อยกเว้นก่อนหน้า] [วัตถุ] (Symfony\Component\HttpClient\Exception\TransportException( รหัส: 0): คำขอไม่ได้รับการประมวลผลและสามารถลองใหม่ได้อย่างปลอดภัยที่ /var/www/html/pami54.local/vendor/symfony/http-client/Response/CommonResponseTrait.php:148)\n[ข้อยกเว้นก่อนหน้า] [ วัตถุ] (Symfony\Component\HttpClient\Exception\TransportException(code: 0): คำขอไม่ได้รับการประมวลผลและสามารถลองใหม่ได้อย่างปลอดภัยที่ /var/www/html/pami54.local/vendor/symfony/http- client/Chunk/ErrorChunk.php:65)\n[ข้อยกเว้นก่อนหน้า] [วัตถุ] (Amp\Http\Client\Connection\UnprocessedRequestException(code: 0): คำขอไม่ได้รับการประมวลผลและสามารถลองใหม่ได้อย่างปลอดภัยที่ /var/www/html/pami54.local/vendor/amphp/http-client/src/Connection/DefaultConnectionFactory.php:117)\n[ข้อยกเว้นก่อนหน้า] [วัตถุ] (Amp\Http\Client\SocketException( รหัส: 0): การเชื่อมต่อกับ 'pami54.local:443' ล้มเหลวที่ /var/www/html/pami54.local/vendor/amphp/http-client/ src/Connection/DefaultConnectionFactory.php:118)\n[ข้อยกเว้นก่อนหน้า] [วัตถุ] (Amp\Socket\ConnectException(code: 111): การเชื่อมต่อกับ tcp://pami54.local:443 ถูกปฏิเสธที่ /var/www /html/pami54.local/vendor/amphp/socket/src/DnsConnector.php:108)"} []

ข้อผิดพลาดนี้หมายความว่าอะไรคือการโยนคอมโพเนนต์ HTTP CLIENT ของ symfony ฉันคิดว่าฉันได้แก้ปัญหาแล้ว อย่างน้อยที่สุดไคลเอนต์เชื่อมต่อการเชื่อมต่อใหม่กับฮับ ตอนนี้ปัญหาคือเมื่อเว็บแอปพลิเคชันพยายามเผยแพร่ไปยังฮับ Mercure

ฉันต้องบอกว่าสภาพแวดล้อมในเครื่องของฉันไม่มีเซิร์ฟเวอร์ dns ทั้งหมดอยู่ในโฮสต์เสมือนในเครื่องและชื่อโดเมนที่ประกาศใน /etc/hostname.conf ของเครื่องเสมือน Debian:

#/etc/hostname.conf     
เดเบียนเดฟ
pami54.local
djdomi avatar
za flag
และคำถามที่เกี่ยวข้องกับธุรกิจคืออะไร? หากคุณกำลังพยายามเข้าถึงบริการผ่านเว็บเซิร์ฟเวอร์ตามพอร์ตเริ่มต้น ดังนั้น reverse proxy จะเหมาะกับความต้องการของคุณ
Francisco avatar
ca flag
@djdomi ฉันทำให้โพสต์เป็นจริงด้วยการกำหนดค่าโฮสต์เสมือน ปัญหาอยู่ที่เซิร์ฟเวอร์ mercure (แคดดี้) ถ้าฉันตั้งค่าใน Caddyfile ว่าต้องรันผ่านพอร์ต 3000 ทำไมจาก Supervisord ถึงพยายามรันผ่านพอร์ต 80 ???
djdomi avatar
za flag
เกิดอะไรขึ้นในขณะที่คุณหยุด apache และลองเริ่มบริการก่อน ใช้ครั้งที่สอง grep -R 80 /path/to/configdir หากคุณตั้งค่าผิดพอร์ต 80
Score:0
ธง ca

ฉันพบวิธีแก้ปัญหาบางส่วน ใน Caddyfile ฉันปิดใช้งานเซิร์ฟเวอร์แคดดี้ที่พอร์ต 80 การตั้งค่า อัตโนมัติ_https คำสั่ง 'disable_redirects' อยู่ แคดดี้ไฟล์ ด้วยวิธีนี้:

# เรียนรู้วิธีกำหนดค่า Mercure.rocks Hub บน https://mercure.rocks/docs/hub/config
{
   {$GLOBAL_OPTIONS}
   auto_https enable_redirects
}

pami54.local:3000

บันทึก

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

เส้นทาง {
    เข้ารหัส zstd gzip

    เมอร์เคียว {
        # การขนส่งเพื่อใช้ (ค่าเริ่มต้นคือ Bolt)
        transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
        # คีย์ผู้เผยแพร่ JWT
        Publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
        # รหัสสมาชิก JWT
        subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
        #คำแนะนำเพิ่มเติม
        cors_origins https://pami54.local
        เผยแพร่_กำเนิด *
        {$MERCURE_EXTRA_DIRECTIVES}
    }

    ตอบกลับ /healthz 200

    ตอบกลับ "ไม่พบ" 404
}

ตอนนี้เป็นไปได้ที่ไคลเอนต์จะเชื่อมต่อกับฮับ แต่เว็บแอปพลิเคชันไม่สามารถเผยแพร่บนฮับได้

ฉันได้อัปเดตโพสต์แล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา