Score:0

ข้อผิดพลาด "FetchError ไม่มีการเชื่อมต่อส่วนหลัง" เมื่อ Apache กำลังทำงาน

ธง cn
[centos@ip-172-35-25-65 ~]$ วานิชล็อก
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635280998 1.0
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635281001 1.0
   10 เซสชันเปิด c 127.0.0.2 55870 127.0.0.2:80
   10 ReqStart ค 127.0.0.2 55870 894208400
   10 RxRequest c รับ
   10 RxURL ค /
   10 Rxโปรโตคอล c HTTP/1.0
   10 RxHeader c X-Real-IP: 198.95.75.75
   10 RxHeader c X-ส่งต่อ-สำหรับ: 198.95.75.75
   10 RxHeader c X-ส่งต่อโปรโต: https
   10 RxHeader c X-Forwarded-Port: 80
   10 RxHeader c โฮสต์: staging03.cherry.com
   10 RxHeader c การเชื่อมต่อ: ปิด
   10 RxHeader c การควบคุมแคช: max-age=0
   10 RxHeader c การอนุญาต: พื้นฐาน aGc6am9objEyMw==
   10 RxHeader c คำขออัปเกรดที่ไม่ปลอดภัย: 1
   10 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/95.0.4638.54 Safari/537.36
   10 RxHeader c ยอมรับ: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v =b3;q=0.9
   10 RxHeader c ยอมรับการเข้ารหัส: gzip, ยุบ
   10 RxHeader c ภาษาที่ยอมรับ: en-US,en;q=0.9,fr;q=0.8
   10 RxHeader c คุกกี้: ajs_anonymous_id=%22424f4cd9-cbbc-4ead-83b1-273cb21cf453%22; _fbp=fb.1.1630002144579.2012566540; __qca=P0-1416512434-1630002144589; _edwvts=708154457303700204; _gid=GA1.2.1572498662.1635275261; ajs_user_id=%224543534%40mimpi99.com%22; _gcl_au=1.1.
   10 VCL_call c recv ผ่าน
   10 VCL_call c แฮช
   10 แฮช c /
   10 แฮช c staging03.cherry.com
   10 แฮช c 80
   10 แฮช c ajs_anonymous_id=%22424f4cd9-cbbc-4ead-83b1-273cb21cf453%22; _fbp=fb.1.1630002144579.2012566540; __qca=P0-1416512434-1630002144589; _edwvts=708154457303700204; _gid=GA1.2.1572498662.1635275261; ajs_user_id=%224543534%40mimpi99.com%22; _gcl_au=1.1.1880042
   10 VCL_return c แฮช
   10 VCL_call c ผ่าน
   10 FetchError ไม่มีการเชื่อมต่อแบ็กเอนด์
   10 ส่งข้อผิดพลาด VCL_call c
   10 VCL_call c ส่ง ส่งมอบ
   10 TxProtocol c HTTP/1.1.1
   10 TxStatus ค 503
   10 TxResponse c บริการไม่พร้อมใช้งาน
   10 TxHeader c เซิร์ฟเวอร์: เคลือบเงา
   10 TxHeader c ประเภทเนื้อหา: text/html; ชุดอักขระ=utf-8
   10 TxHeader c ลองใหม่หลังจาก: 5
   10 TxHeader c ความยาวเนื้อหา: 392
   10 TxHeader c ช่วงที่ยอมรับได้: ไบต์
   10 TxHeader c วันที่: อ. 26 ต.ค. 2021 20:43:23 GMT
   10 TxHeader c X-วานิช: 894208400
   10 TxHeader c ผ่าน: 1.1 วานิช
   10 TxHeader c การเชื่อมต่อ: ปิด
   10 TxHeader c X-อายุ: 0
   10 TxHeader c X-Cache: MISS
   10 ความยาว ค392
   10 คำขอท้ายค 894208400 1635281003.852778196 1635281003.852984428 0.000073195 0.000165701 0.000040531
   10 SessionClose c ข้อผิดพลาด
   10 StatSess ค 127.0.0.2 55870 0 1 1 0 1 0 273 392
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635281004 1.0
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635281007 1.0
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635281010 1.0
    0 CLI - ถ.ปิง
    0 CLI - Wr 200 19 PONG 1635281013 1.0

ฉันพยายามบันทึกสิ่งที่เกิดขึ้นเมื่อฉันได้รับจากฝั่งไคลเอ็นต์:

ข้อผิดพลาด 503 บริการไม่พร้อมใช้งาน
ไม่สามารถให้บริการได้

การทำสมาธิคุรุ:
XID: 894208400

ตอนนี้ ฉันคิดว่าเป็นเพราะ Apache ไม่ทำงาน เพราะเมื่อฉันปิดวานิช ฉันได้รับข้อผิดพลาด 502 เกตเวย์จาก nginx อย่างไรก็ตาม ฉันอ่านบันทึกข้อผิดพลาด:

[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] เปิดใช้งานนโยบาย SELinux; httpd ทำงานเป็นบริบท unconfined_u:system_r:httpd_t:s0
[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] เปิดใช้งานกลไก suEXEC (wrapper: /usr/sbin/suexec)
[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] ไดเจสท์: สร้างความลับสำหรับการพิสูจน์ตัวตนไดเจสต์ ...
[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] สรุป: เสร็จแล้ว
[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] FastCGI: ตัวจัดการกระบวนการเริ่มต้น (pid 23090)
[อ. 26 ต.ค. 14:53:47 น. 2564] [ประกาศ] กำหนดค่า Apache/2.2.15 (Unix) DAV/2 mod_fastcgi/2.4.6 -- กลับมาดำเนินการตามปกติ
[อ. 26 ต.ค. 14:53:52 น. 2564] [ข้อผิดพลาด] [ไคลเอ็นต์ 127.0.0.1] ดัชนีไดเร็กทอรีห้ามโดยคำสั่ง Options: /var/www/html/
[อ. 26 ต.ค. 14:53:52 น. 2564] [ข้อผิดพลาด] [ไคลเอนต์ 127.0.0.1] ไม่มีไฟล์: /var/www/html/favicon.ico ผู้อ้างอิง: http://staging03.hgreg.com/
[อ. 26 ต.ค. 15:01:21 น. 2564] [ข้อผิดพลาด] [ไคลเอ็นต์ 127.0.0.1] ดัชนีไดเร็กทอรีไม่ได้รับอนุญาตโดยคำสั่ง Options: /var/www/html/
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] จับ SIGTERM ปิดตัว
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] เปิดใช้งานนโยบาย SELinux; httpd ทำงานเป็นบริบท unconfined_u:system_r:httpd_t:s0
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] เปิดใช้งานกลไก suEXEC (wrapper: /usr/sbin/suexec)
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] ไดเจสท์: สร้างความลับสำหรับการรับรองความถูกต้องไดเจสต์ ...
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] สรุป: เสร็จแล้ว
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] FastCGI: ตัวจัดการกระบวนการเริ่มต้น (pid 23299)
[อ. 26 ต.ค. 15:01:42 น. 2564] [ประกาศ] กำหนดค่า Apache/2.2.15 (Unix) DAV/2 mod_fastcgi/2.4.6 -- กลับมาดำเนินการตามปกติ
[อ. 26 ต.ค. 15:11:56 น. 2564] [ประกาศ] จับ SIGTERM ปิดตัว

ฉันเห็น SIGTERM กำลังปิดอยู่ ดังนั้นฉันคิดว่าบางทีฉันควรรีสตาร์ท Apache และฉันก็ทำ แต่ฉันได้รับข้อผิดพลาดเดิม และไม่มีบันทึกใหม่ใน error_log

[centos@ip-172-35-25-65 ~] $ บริการ sudo httpd เริ่มต้นใหม่
กำลังหยุด httpd: [ ตกลง ]
เริ่มต้น httpd: [ ตกลง ]
[centos@ip-172-35-25-65 ~]$ วันที่
อ. 26 ต.ค. 17:12:32 น. EDT 2021
[centos@ip-172-35-25-65 ~]$ 

ตอนนี้ฉันเรียกใช้การกำหนดค่าหุ่นกระบอก แต่มันไม่ได้ทำงานอย่างสมบูรณ์ แต่ฉันมีไฟล์เดียวกัน ดังนั้นฉันจึงสงสัยว่าอาจเป็นปัญหาอะไร หนึ่งในไฟล์กำหนดค่า Apache ที่โหลดเนื่องจากไฟล์ทั้งหมดที่มี conf ถูกโหลดจะเป็นดังนี้:

<VirtualHost *>
    ServerName preprod.staging03.cherry.com

    
    
    ServerAlias betacherry.staging03.cherry.com staging03.cherry.com
    
    

    DocumentRoot /home/staging03/version/preprod.staging03.cherry.com
    ServerAdmin [email protected]

    SetEnv environment preprod
    SetEnv project staging03

    UseCanonicalName Off
    #CustomLog /var/log/httpd/preprod.staging03.cherry.com_log combined
    #CustomLog /var/log/httpd/preprod.staging03.cherry.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."

    ## User cherry # Needed for Cpanel::ApacheConf
    UserDir disabled
    UserDir enabled staging03
    
      #<IfModule mod_suphp.c>
    #    suPHP_UserGroup staging03 staging03
    #</IfModule>
    
    SuexecUserGroup staging03 staging03
    
    <directory "/home/staging03/version">
        AddHandler php5-fcgi .php
        Action php5-fcgi /php5-fcgi-staging03
        AllowOverride All

        
        AuthType Basic
        AuthName "staging03-preprod"
        AuthUserFile "/etc/httpd/conf.d/htpasswd.staging03"
        require valid-user

        satisfy any
        deny from all

        Order deny,allow
        SetEnvIf X-Hg-Internal-IP 1 HgInternalIP=1
        Allow from env=HgInternalIP

        SetEnvIf User-Agent "Amazon CloudFront" AmazonCloudFront
        Allow from env=AmazonCloudFront

        SetEnvIf User-Agent "^(.*)Lighthouse(.*)$" Lighthouse=1
        Allow from env=Lighthouse
        
    </directory>
    <IfModule concurrent_php.c>
        php5_admin_value open_basedir "/home/staging03:/usr/lib/php:/usr/local/lib/php:/tmp"
    </IfModule>
    <IfModule !concurrent_php.c>
        <IfModule mod_php5.c>
            php_admin_value open_basedir "/home/staging03:/usr/lib/php:/usr/local/lib/php:/tmp"
        </IfModule>
        <IfModule sapi_apache2.c>
            php_admin_value open_basedir "/home/staging03:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp"
        </IfModule>
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        <IfModule !mod_ruid2.c>
            SuexecUserGroup staging03 staging03
        </IfModule>
    </IfModule>
    <IfModule mod_ruid2.c>
        RMode config
        RUidGid staging03 staging03
    </IfModule>
    <IfModule itk.c>
        # For more information on MPM ITK, please read:
        #   http://mpm-itk.sesse.net/
        AssignUserID staging03 staging03
    </IfModule>
</VirtualHost>

ดังนั้นฉันควรดูไฟล์ใดและฉันจะตรวจสอบได้อย่างไรว่าไม่ใช่ Apache นั่นคือปัญหา เนื่องจากเรามีการกำหนดเส้นทาง nginx เพื่อเคลือบเงาแล้วกำหนดเส้นทางไปยัง Apache ดังนั้นฉันจึงคิดว่า Apache เป็นปัญหา แต่ฉันไม่ได้รับข้อมูลที่เป็นประโยชน์ใดๆ จากบันทึกและ Apache ทำงานโดยไม่มีปัญหาใด ๆ เป็นเพียงการไม่ให้บริการหน้าและวานิชไม่สามารถเข้าถึง Apache ได้ด้วยเหตุผลบางประการ?

ฉันใช้ CENTOS 6 และฉันมีเซิร์ฟเวอร์อื่นที่มีการกำหนดค่าเดียวกันซึ่งทำงานได้ดี แต่เมื่อฉันแยกความแตกต่างของโฟลเดอร์ etc ฉันไม่เห็นความแตกต่างที่มีนัยสำคัญ

Score:1
ธง in

จากบันทึกของคุณ ฉันเห็นว่าทั้ง Varnish & Apache ทำงานบนเครื่องเดียวกัน วานิชควรวิ่งบนพอร์ต 80 และ Apache บนพอร์ต 8080.

เห็นได้ชัดว่ามี Nginx ทำงานอยู่ ดังนั้นฉันจึงถือว่านั่นคือการสิ้นสุด TLS ซึ่งทำงานบนพอร์ต 443.

ขั้นตอนที่ 1: ตรวจสอบให้แน่ใจว่า Apache รับฟังพอร์ต 8080 ได้สำเร็จ

วิ่ง sudo netstat -plnt เพื่อดูว่าแต่ละบริการใช้พอร์ตใด

รับรองว่า httpd บริการกำลังฟังพอร์ต 8080 และตรวจสอบสิ่งนี้โดยเรียกใช้ ขด -I localhost:8080.

ขั้นตอนที่ 2: เพิ่มโพรบสุขภาพสำหรับแบ็กเอนด์ในไฟล์ VCL ของคุณ

VCL มาตรฐานไม่มีโพรบสุขภาพสำหรับแบ็คเอนด์เริ่มต้นของคุณ เมื่อใช้โค้ด VCL ด้านล่าง คุณจะสามารถตรวจสอบสถานะแบ็กเอนด์ได้อย่างต่อเนื่อง:

แบ็กเอนด์เริ่มต้น {
    .host = "127.0.0.1";
    .port = "8080";
    .probe = {
        .url = "/";
        .timeout = 2 วินาที;
        .interval = 5 วินาที;
        .window = 10;
        .threshold = 5;
   }
}

เมื่อเพิ่มโพรบและโหลด VCL ใหม่แล้ว คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบความสมบูรณ์ของแบ็คเอนด์ โดยอ้างอิงจากโพรบ:

varnishlog -g ดิบ -i backend_health

หากเอาต์พุตประกอบด้วย ยังคงป่วยคุณทราบดีว่าแบ็กเอนด์ไม่พร้อมใช้งานและรหัสสถานะอาจบอกคุณได้ว่าเหตุใดจึงเป็นเช่นนั้น

ขั้นตอนที่ 3: อัปเกรดเซิร์ฟเวอร์วานิชของคุณ

ฉันอดไม่ได้ที่จะสังเกตคำศัพท์เช่น RxHeader ในเอาต์พุต VSL ของคุณ นี่เป็นคำใบ้ที่ชัดเจนว่าคุณกำลังใช้วานิชเวอร์ชันโบราณที่ไม่รองรับอีกต่อไป

แม้แต่ในวานิชรุ่นเก่าจริงๆ RxHeader ถูกแทนที่ด้วย ส่วนหัวคำขอ.

คำแนะนำของฉัน: อัปเกรดเป็น วานิช 6.0 บ. วานิชเวอร์ชัน LTS นี้มาพร้อมกับการแก้ไขข้อบกพร่องและแพตช์ความปลอดภัยบ่อยครั้ง ดู https://www.varnish-software.com/developers/tutorials/installing-varnish-centos/ เพื่อเรียนรู้วิธีติดตั้งเวอร์ชันนี้บน CentOS

โพสต์คำตอบ

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