Score:0

ปัญหา Apache2 Vhost - เมื่อเปิดใช้งานโฮสต์เสมือนของฉันจะทำให้โดเมนรูทแสดงโฮสต์เสมือนนั้น

ธง ca

ฉันใช้ apache2 บนเซิร์ฟเวอร์ Debian 10

ฉันมี virtualhost สำหรับหนึ่งในโดเมนย่อยที่ฉันมี ฉันมีปัญหาที่หากเปิดใช้งาน virtualhost ของโดเมนย่อย ให้ไปที่ Broadcastre.cc จะแสดงเนื้อหาของ smf.broadcastre.cc (โฮสต์เสมือน)

นี่ไม่ได้ตั้งใจและความช่วยเหลือใด ๆ เกี่ยวกับปัญหานี้จะได้รับการชื่นชม

การกำหนดค่าโฮสต์เสมือนของฉัน

root@server1:~# cat /etc/apache2/sites-available/smf.conf

<โฮสต์เสมือน *:80>
     ServerAdmin <อีเมลถูกซ่อน>
     ชื่อเซิร์ฟเวอร์ smf.broadcastre.cc
     ServerAlias ​​www.smf.broadcastre.cc
     DocumentRoot /var/www/smf
     DirectoryIndex index.php

     <ไดเร็กทอรี /var/www/smf>
        ดัชนีตัวเลือก FollowSymLinks MultiViews
        AllowOverride ทั้งหมด
        คำสั่งอนุญาตปฏิเสธ
        อนุญาตจากทั้งหมด
     </ไดเร็กทอรี>

    <FilesMatch \.php$>
      # สำหรับ Apache เวอร์ชัน 2.4.10 ขึ้นไป ให้ใช้ SetHandler เพื่อเรียกใช้ PHP เป็นเซิร์ฟเวอร์กระบวนการ fastCGI
      SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
    </FilesMatch>

     บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/smf.broadcastre.cc_error.log
     รวมบันทึก ${APACHE_LOG_DIR}/smf.broadcastre.cc_access.log ที่กำหนดเอง
</เวอร์ชวลโฮสต์>

การกำหนดค่าสำหรับ Broadcastre.cc

root@server1:~# cat /etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
        <โฮสต์เสมือน _default_:443>
                ServerAdmin webmaster@localhost

                DocumentRoot /var/www/html

                # loglevels ที่มีอยู่: trace8, ..., trace1, debug, ข้อมูล, ประกาศ, เตือน,
                # ข้อผิดพลาด วิกฤต การแจ้งเตือน เกิดขึ้น
                # นอกจากนี้ยังสามารถกำหนดค่าล็อกระดับโดยเฉพาะได้
                # โมดูล เช่น
                #ข้อมูล LogLevel ssl:warning

                บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน

                # สำหรับไฟล์การกำหนดค่าส่วนใหญ่จาก conf-available/ ซึ่งได้แก่
                # เปิดใช้งานหรือปิดใช้งานในระดับโลกก็เป็นไปได้
                # รวมบรรทัดสำหรับโฮสต์เสมือนหนึ่งรายการเท่านั้น ตัวอย่างเช่น
                # บรรทัดต่อไปนี้เปิดใช้งานการกำหนดค่า CGI สำหรับโฮสต์นี้เท่านั้น
                # หลังจากถูกปิดใช้งานทั่วโลกด้วย "a2disconf"
                #รวม conf-available/serve-cgi-bin.conf

                # สวิตช์เครื่องยนต์ SSL:
                # เปิด / ปิด SSL สำหรับโฮสต์เสมือนนี้
                SSLEngine เปิดอยู่

                # สามารถสร้างใบรับรองที่ลงนามเอง (snakeoil) ได้โดยการติดตั้ง
                # แพ็คเกจ ssl-cert ดู
                # /usr/share/doc/apache2/README.Debian.gz สำหรับข้อมูลเพิ่มเติม
                # หากทั้งคีย์และใบรับรองถูกจัดเก็บไว้ในไฟล์เดียวกัน เฉพาะไฟล์
                # จำเป็นต้องมีคำสั่ง SSLCertificateFile
                SSLCertificateFile /root/.acme.sh/broadcastre.cc/broadcastre.cc.cer
                SSLCertificateKeyFile /root/.acme.sh/broadcastre.cc/broadcastre.cc.key

                # เชนใบรับรองเซิร์ฟเวอร์:
                # ชี้ SSLCertificateChainFile ที่ไฟล์ที่มีไฟล์
                # การต่อใบรับรอง CA ที่เข้ารหัส PEM ซึ่งเป็นรูปแบบ
                # สายใบรับรองสำหรับใบรับรองเซิร์ฟเวอร์ อีกทางหนึ่ง
                # ไฟล์อ้างอิงสามารถเหมือนกับ SSLCertificateFile
                # เมื่อเพิ่มใบรับรอง CA เข้ากับเซิร์ฟเวอร์โดยตรง
                #ใบรับรองเพื่อความมั่นใจ
                #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

                # ผู้ออกใบรับรอง (CA):
                # กำหนดเส้นทางการตรวจสอบใบรับรอง CA ที่จะค้นหา CA
                # ใบรับรองสำหรับการรับรองความถูกต้องของไคลเอนต์หรืออีกทางเลือกหนึ่ง
                # ไฟล์ขนาดใหญ่ที่มีทั้งหมด (ไฟล์ต้องเข้ารหัส PEM)
                # หมายเหตุ: ภายใน SSLCACertificatePath คุณต้องมีแฮช symlink
                # เพื่อชี้ไปที่ไฟล์ใบรับรอง ใช้ที่ให้มา
                # Makefile เพื่ออัปเดตแฮช symlink หลังจากการเปลี่ยนแปลง
                #SSLCACertificatePath /etc/ssl/certs/
                #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt

                # รายการเพิกถอนใบรับรอง (CRL):
                # กำหนดเส้นทางการเพิกถอน CA ที่จะค้นหา CA CRL สำหรับลูกค้า
                # การรับรองความถูกต้องหรืออีกทางเลือกหนึ่งคือไฟล์ขนาดใหญ่ที่มีทั้งหมด
                # ของพวกเขา (ไฟล์ต้องเข้ารหัส PEM)
                # หมายเหตุ: ภายใน SSCARevocationPath คุณต้องมีแฮช symlink
                # เพื่อชี้ไปที่ไฟล์ใบรับรอง ใช้ที่ให้มา
                # Makefile เพื่ออัปเดตแฮช symlink หลังจากการเปลี่ยนแปลง
                #SSLCARevocationPath /etc/apache2/ssl.crl/
                #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl

                # การรับรองความถูกต้องไคลเอนต์ (ประเภท):
                # ประเภทการตรวจสอบใบรับรองไคลเอ็นต์และความลึก ประเภทได้แก่
                # ไม่มี, ไม่บังคับ, ต้องการ และ option_no_ca ความลึกคือ
                # หมายเลขที่ระบุความลึกในการตรวจสอบใบรับรอง
                # ห่วงโซ่ผู้ออกก่อนที่จะตัดสินว่าใบรับรองไม่ถูกต้อง
                #SSLVerifyClient ต้องการ
                #SSLVerifyความลึก 10

                # ตัวเลือกเครื่องยนต์ SSL:
                # ตั้งค่าตัวเลือกต่างๆสำหรับเครื่องยนต์ SSL
                # o FakeBasicAuth:
                # แปลไคลเอนต์ X.509 เป็นการให้สิทธิ์ขั้นพื้นฐาน นี่หมายความว่า
                # สามารถใช้เมธอด Auth/DBMAuth มาตรฐานสำหรับการควบคุมการเข้าถึงได้ เดอะ
                ชื่อผู้ใช้ # เป็นเวอร์ชัน `หนึ่งบรรทัด' ของใบรับรอง X.509 ของไคลเอ็นต์
                # โปรดทราบว่าไม่ได้รับรหัสผ่านจากผู้ใช้ ทุกรายการในผู้ใช้
                # ไฟล์ต้องการรหัสผ่านนี้: `xxj31ZMTZzkVA'
                # o ส่งออกใบรับรองข้อมูล:
                # สิ่งนี้ส่งออกตัวแปรสภาพแวดล้อมเพิ่มเติมสองตัว: SSL_CLIENT_CERT และ
                # SSL_SERVER_CERT เหล่านี้ประกอบด้วยใบรับรองที่เข้ารหัส PEM ของ
                # เซิร์ฟเวอร์ (มีอยู่เสมอ) และไคลเอนต์ (มีอยู่เฉพาะเมื่อไคลเอนต์
                # ใช้การรับรองความถูกต้อง) สามารถใช้นำเข้าใบรับรองได้
                # เป็นสคริปต์ CGI
                # o StdEnvVars:
                # สิ่งนี้ส่งออกตัวแปรสภาพแวดล้อม `SSL_*' ที่เกี่ยวข้องกับ SSL/TLS มาตรฐาน
                # ตามค่าเริ่มต้น การส่งออกนี้ถูกปิดเนื่องจากเหตุผลด้านประสิทธิภาพ
                # เนื่องจากขั้นตอนการสกัดเป็นการดำเนินการที่มีราคาแพงและโดยปกติแล้ว
                # ไม่มีประโยชน์สำหรับการให้บริการเนื้อหาคงที่ ดังนั้นจึงมักจะเปิดใช้งาน
                # การส่งออกสำหรับคำขอ CGI และ SSI เท่านั้น
                # o เลือกเจรจาใหม่:
                # สิ่งนี้เปิดใช้งานการจัดการการเจรจาต่อรองการเชื่อมต่อ SSL ที่ปรับให้เหมาะสมเมื่อ SSL
                # คำสั่งใช้ในบริบทต่อไดเรกทอรี
                #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <ไดเรกทอรี /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </ไดเร็กทอรี>

                # การปรับโปรโตคอล SSL:
                # การปิดระบบที่ปลอดภัยและเป็นค่าเริ่มต้น แต่ยังคงเป็นไปตามมาตรฐาน SSL/TLS
                # วิธีคือ mod_ssl ส่งการแจ้งเตือนการปิด แต่ไม่รอ
                # ปิดการแจ้งเตือนจากลูกค้า เมื่อคุณต้องการปิดเครื่องอื่น
                # วิธีการ คุณสามารถใช้หนึ่งในตัวแปรต่อไปนี้:
                # o ssl-ไม่สะอาด-ปิด:
                # สิ่งนี้บังคับให้ปิดเครื่องที่ไม่สะอาดเมื่อปิดการเชื่อมต่อ เช่น ไม่
                # การแจ้งเตือนการปิด SSL ถูกส่งหรืออนุญาตให้ได้รับ สิ่งนี้ฝ่าฝืน
                # มาตรฐาน SSL / TLS แต่จำเป็นสำหรับเบราว์เซอร์ที่สมองตาย ใช้
                # สิ่งนี้เมื่อคุณได้รับข้อผิดพลาด I/O เนื่องจากแนวทางมาตรฐานโดยที่
                # mod_ssl ส่งการแจ้งเตือนปิด
                # o ssl-ถูกต้องปิด:
                # สิ่งนี้บังคับให้ปิดเครื่องอย่างถูกต้องเมื่อปิดการเชื่อมต่อ เช่น
                # การแจ้งเตือนการปิด SSL ถูกส่งและ mod_ssl รอการแจ้งเตือนการปิด
                #แจ้งเตือนลูกค้า. เป็นไปตามมาตรฐาน SSL/TLS 100% แต่ใน
                การฝึกฝน # มักจะทำให้เกิดการเชื่อมต่อกับเบราว์เซอร์ที่สมองตาย ใช้
                # นี้สำหรับเบราว์เซอร์ที่คุณรู้ว่ามีการใช้ SSL เท่านั้น
                #ทำงานถูกต้อง
                # ข้อสังเกต: ปัญหาส่วนใหญ่ของไคลเอนต์ที่เสียยังเกี่ยวข้องกับ HTTP
                # สิ่งอำนวยความสะดวกในการช่วยชีวิต ดังนั้นคุณมักจะต้องการปิดการใช้งานเพิ่มเติม
                #รักษาชีวิตสำหรับลูกค้าเหล่านั้นด้วย ใช้ตัวแปร "nokeepalive" สำหรับสิ่งนี้
                # ในทำนองเดียวกัน เราต้องบังคับให้ลูกค้าบางรายใช้ HTTP/1.0 เพื่อแก้ปัญหา
                # การใช้งาน HTTP/1.1 ที่เสียหาย ใช้ตัวแปร "downgrade-1.0" และ
                # "force-response-1.0" สำหรับสิ่งนี้
                # BrowserMatch "MSIE [2-6]" \
                # nokeepalive ssl-ไม่สะอาด-ปิด \
                # ปรับลด -1.0 บังคับให้ตอบสนอง -1.0
<IfModule mod_expires.c>
    หมดอายุเปิดใช้งานเมื่อ
    ExpiresByType ข้อความ/css A31536000
    ExpiresByType text/x-component A31536000
    แอปพลิเคชัน ExpiresByType/x-javascript A31536000
    แอปพลิเคชัน ExpiresByType/จาวาสคริปต์ A31536000
    ExpiresByType ข้อความ/จาวาสคริปต์ A31536000
    ExpiresByType ข้อความ/x-js A31536000
    ExpiresByType ข้อความ/html A3600
    ExpiresByType ข้อความ/richtext A3600
    ข้อความ ExpiresByType/ธรรมดา A3600
    ข้อความ ExpiresByType/xsd A3600
    ExpiresByType ข้อความ/xsl A3600
    ExpiresByType ข้อความ/xml A3600
    วิดีโอ ExpiresByType/ASF A31536000
    วิดีโอ ExpiresByType/avi A31536000
    ภาพ ExpiresByType/bmp A31536000
    แอปพลิเคชัน ExpiresByType/java A31536000
    วิดีโอ ExpiresByType/divx A31536000
    แอปพลิเคชัน ExpiresByType/msword A31536000
    ExpiresByType รูปภาพ/gif A31536000
    แอปพลิเคชัน ExpiresByType/x-gzip A31536000
    รูปภาพ ExpiresByType/x-icon A31536000
    ExpiresByType ภาพ/jpeg A31536000
    รูปภาพ ExpiresByType/webp A31536000
    แอปพลิเคชัน ExpiresByType/json A31536000
    ExpiresByType เสียง/มิดี้ A31536000
    วิดีโอ ExpiresByType/quicktime A31536000
    ExpiresByType เสียง/mpeg A31536000
    ExpiresByType วิดีโอ/mp4 A31536000
    ExpiresByType วิดีโอ/mpeg A31536000
    วิดีโอ ExpiresByType/webm A31536000
    แอปพลิเคชัน ExpiresByType/x-font-otf A31536000
    ExpiresByType เสียง/ogg A31536000
    แอปพลิเคชัน ExpiresByType/pdf A31536000
    ExpiresByType ภาพ/png A31536000
    ExpiresByType เสียง/x-realaudio A31536000
    ภาพ ExpiresByType/svg+xml A31536000
    แอปพลิเคชัน ExpiresByType/x-shockwave-flash A31536000
    แอปพลิเคชัน ExpiresByType/x-tar A31536000
    รูปภาพ ExpiresByType/tiff A31536000
    แอปพลิเคชัน ExpiresByType/x-font-ttf A31536000
    ExpiresByType เสียง/wav A31536000
    ExpiresByType เสียง/wma A31536000
    แอปพลิเคชัน ExpiresByType/font-woff A31536000
    แอปพลิเคชัน ExpiresByType/font-woff2 A31536000
    แอปพลิเคชัน ExpiresByType/zip A31536000
</หากโมดูล>
                นามแฝง /mail /usr/share/roundcube
        </เวอร์ชวลโฮสต์>
</หากโมดูล>

# เป็นกลุ่ม: ไวยากรณ์=apache ts=4 sw=4 sts=4 sr noet

แก้ไข: การเปิด Broadcastre.cc ด้วยพอร์ต 443 แทนที่จะเป็น 80 จะแก้ไขปัญหานี้ ฉันถือว่านี่เป็นเพราะมันฟังใน 443 ไม่ใช่ 80 (ขอบคุณ little_toasted ที่ชี้ให้เห็นสิ่งนี้)

slightly_toasted avatar
bd flag
ดูเหมือนว่า `broadcastre.cc` กำลังฟังอยู่ที่พอร์ต 443 ขณะที่ `smf.broadcastre.cc` กำลังฟังอยู่ที่พอร์ต 80 ดังนั้น หากคุณไปที่ `smf.broadcastre.cc` บนพอร์ต 443 (HTTPS) คุณจะได้รับบริการ ` Broadcastre.cc`. ตรวจสอบลำดับความสำคัญของ VHost ของ Apache: http://lifeonubuntu.com/what-is-the-apache-directive-order-of-precedence/

โพสต์คำตอบ

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