Score:0

Apache, Docker, Proxy - เปลี่ยนที่อยู่ในเบราว์เซอร์เป็น 127.0.0.1

ธง tr

ฉันมีเซิร์ฟเวอร์ Apache ที่มีไซต์ไม่กี่แห่ง

ฉันต้องการรันบนคอนเทนเนอร์นักเทียบท่าเซิร์ฟเวอร์นี้กับ Mercure และแชร์บนอินเทอร์เน็ต

ฉันพบข้อมูลบนอินเทอร์เน็ตว่าฉันต้องใช้ ProxyPass และ ProxyPassReverse ในการกำหนดค่า vhost

การกำหนดค่า 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 SERVER_NAME=':80' \
    -e MERCURE_PUBLISHER_JWT_KEY='!ChangeMe!' \
    -e MERCURE_SUBSCRIBER_JWT_KEY='!ChangeMe!' \
    -p 8099:80 \
    -e CORS_ALLOWED_ORIGINS='https://tomaszf.pl' \
    -e DEBUG=1 \
    -e ALLOW_ANONYMOUS=1 \
    เรียกใช้แคดดี้ dunglas/mercure -config /etc/caddy/Caddyfile.dev

ปัญหา: เมื่อคุณพยายามเข้าสู่เว็บไซต์ tomaszf.pl/mercure ที่อยู่ในเบราว์เซอร์จะเปลี่ยนเป็น 127.0.0.1 โดยอัตโนมัติ และเว็บไซต์ไม่ทำงาน

ฉันต้องเปลี่ยนอะไรในการกำหนดค่า

Score:0
ธง vn

ฉันใช้การกำหนดค่าเดียวกัน ยกเว้นใบรับรองที่ลงนามเองและแก้ไขไฟล์โฮสต์ของฉันให้ชี้ tomaszf.pl ถึง 127.0.9.1 และฉัน ไม่ ถูกเปลี่ยนเส้นทางออกจากโฮสต์นั้น

การตอบสนองขด

นั่นเป็นการพิสูจน์ว่าคอนเทนเนอร์เวอร์ชันล่าสุด dunglas / ปรอท: ล่าสุด จาก dockerhub กำลังเปลี่ยนเส้นทางอย่างถูกต้อง หากคุณประสบปัญหานี้ ให้ตรวจสอบว่าคุณมีอิมเมจล่าสุด (hash c10597bdf077 สำหรับ amd64 ณ เวลาที่เขียน)

ปัญหาอื่น ๆ ที่คุณจะเผชิญก็คือโมดูลแคดดี้ แม่นยำ ไม่ ดูเหมือนจะรองรับการให้บริการโมดูลได้ทุกที่ยกเว้นรูทของโฮสต์ (เช่น tomaszf.pl เท่านั้น, ไม่ tomaszf.pl/mercure ). ดูเหมือนว่าจะเป็นการตัดสินใจออกแบบตามการใช้งานของ /.มีชื่อเสียง คำนำหน้า (เอกสารโมดูล Mercure Caddy https://caddyserver.com/docs/modules/http.handlers.mercure)

ฉันอยากจะแนะนำให้ใช้โดเมนย่อย (อาจจะเป็น mercure.tomaszf.pl) และให้บริการโมดูลจากที่นั่นที่รูทแทน

โพสต์คำตอบ

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