Điểm:0

Lỗi "FetchError không có kết nối phụ trợ" khi Apache đang chạy

lá cờ cn
[centos@ip-172-35-25-65 ~]$ vecnilog
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635280998 1.0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635281001 1.0
   10 PhiênMở c 127.0.0.2 55870 127.0.0.2:80
   10 ReqStart c 127.0.0.2 55870 894208400
   10 RxRequest c NHẬN
   10 RxURL c/
   10 RxProtocol c HTTP/1.0
   10 RxHeader c X-Real-IP: 198.95.75.75
   10 RxHeader c X-Forwarded-For: 198.95.75.75
   10 RxHeader c X-Forwarded-Proto: https
   10 RxHeader c X-Forwarded-Port: 80
   10 RxHeader c Máy chủ: staging03.cherry.com
   10 RxHeader c Kết nối: đóng
   10 RxHeader c Kiểm soát bộ đệm: max-age=0
   10 RxHeader c Ủy quyền: Cơ bản aGc6am9objEyMw==
   10 RxHeader c Yêu cầu nâng cấp-không an toàn: 1
   10 RxHeader c Tác nhân người dùng: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/95.0.4638.54 Safari/537.36
   10 RxHeader c Chấp nhận: 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 Chấp nhận mã hóa: gzip, giảm phát
   10 RxHeader c Ngôn ngữ chấp nhận: en-US,en;q=0.9,fr;q=0.8
   10 RxHeader c Cookie: 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 pass
   10 hàm băm VCL_call c
   10 Băm c/
   10 Hash c staging03.cherry.com
   10 Băm c 80
   10 Băm 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 hàm băm VCL_return c
   10 VCL_call c pass pass
   10 FetchError c không có kết nối phụ trợ
   10 VCL_call c gửi lỗi
   10 VCL_call c Deliver Deliver
   10 Giao thức Tx c HTTP/1.1
   10 TxStatus c 503
   10 Dịch vụ TxResponse c Không khả dụng
   10 Máy chủ TxHeader c: Varnish
   10 TxHeader c Loại nội dung: text/html; bộ ký tự = utf-8
   10 TxHeader c Thử lại sau: 5
   10 TxHeader c Độ dài nội dung: 392
   10 TxHeader c Phạm vi chấp nhận: byte
   10 TxHeader c Ngày: Thứ ba, ngày 26 tháng 10 năm 2021 20:43:23 GMT
   10 TxHeader c X-Véc ni: 894208400
   10 TxHeader c Qua: 1.1 vecni
   10 TxHeader c Kết nối: đóng
   10 TxHeader c X-Tuổi: 0
   10 TxHeader c X-Cache: BỎ LỠ
   10 Chiều dài c 392
   10 Yêu cầu c 894208400 1635281003.852778196 1635281003.852984428 0.000073195 0.000165701 0.000040531
   10 SessionClose c lỗi
   10 StatSess c 127.0.0.2 55870 0 1 1 0 1 0 273 392
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635281004 1.0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635281007 1.0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635281010 1.0
    0 CLI - Rd ping
    0 CLI - Wr 200 19 PONG 1635281013 1.0

Tôi đã cố gắng ghi lại những gì đang xảy ra khi tôi nhận được từ phía khách hàng:

Lỗi 503 Dịch vụ không khả dụng
dịch vụ Không sẵn có

Thiền sư:
XID: 894208400

Bây giờ, tôi nghĩ đó là do Apache không chạy, vì khi tôi đóng varnish, tôi gặp lỗi cổng 502 từ nginx. Dù sao, tôi đã đọc nhật ký lỗi:

[Thứ Ba ngày 26 tháng 10 14:53:47 năm 2021] [thông báo] Đã bật chính sách SELinux; httpd chạy dưới dạng ngữ cảnh unconfined_u:system_r:httpd_t:s0
[Thứ Ba ngày 26 tháng 10 14:53:47 năm 2021] [thông báo] đã bật cơ chế suEXEC (trình bao bọc: /usr/sbin/suexec)
[Thứ Ba ngày 26 tháng 10 14:53:47 năm 2021] [thông báo] Digest: tạo bí mật để xác thực thông báo ...
[Thứ 3 ngày 26 tháng 10 14:53:47 2021] [thông báo] Thông báo: xong
[Thứ Ba ngày 26 tháng 10 14:53:47 năm 2021] [thông báo] FastCGI: đã khởi tạo trình quản lý quy trình (pid 23090)
[Thứ Ba ngày 26 tháng 10 14:53:47 năm 2021] [thông báo] Apache/2.2.15 (Unix) DAV/2 mod_fastcgi/2.4.6 đã định cấu hình -- tiếp tục hoạt động bình thường
[Thứ Ba ngày 26 tháng 10 14:53:52 năm 2021] [lỗi] [máy khách 127.0.0.1] Chỉ mục tùy chọn bị cấm chỉ mục thư mục: /var/www/html/
[Thứ Ba ngày 26 tháng 10 14:53:52 năm 2021] [lỗi] [máy khách 127.0.0.1] Tệp không tồn tại: /var/www/html/favicon.ico, người giới thiệu: http://staging03.hgreg.com/
[Thứ Ba ngày 26 tháng 10 15:01:21 năm 2021] [lỗi] [máy khách 127.0.0.1] Chỉ mục tùy chọn bị cấm chỉ mục thư mục: /var/www/html/
[Thứ 3 ngày 26 tháng 10 15:01:42 2021] [thông báo] bắt gặp SIGTERM, ngừng hoạt động
[Thứ Ba ngày 26 tháng 10 15:01:42 năm 2021] [thông báo] Đã bật chính sách SELinux; httpd chạy dưới dạng ngữ cảnh unconfined_u:system_r:httpd_t:s0
[Thứ Ba ngày 26 tháng 10 15:01:42 năm 2021] [thông báo] đã bật cơ chế suEXEC (trình bao bọc: /usr/sbin/suexec)
[Thứ Ba ngày 26 tháng 10 15:01:42 năm 2021] [thông báo] Thông báo: tạo bí mật để xác thực thông báo ...
[Thứ 3 ngày 26 tháng 10 15:01:42 2021] [thông báo] Thông báo: xong
[Thứ Ba ngày 26 tháng 10 15:01:42 năm 2021] [thông báo] FastCGI: đã khởi chạy trình quản lý quy trình (pid 23299)
[Thứ Ba ngày 26 tháng 10 15:01:42 năm 2021] [thông báo] Apache/2.2.15 (Unix) DAV/2 mod_fastcgi/2.4.6 đã định cấu hình -- tiếp tục hoạt động bình thường
[Thứ 3 ngày 26 tháng 10 15:11:56 2021] [thông báo] SIGTERM bị bắt, ngừng hoạt động

Tôi thấy SIGTERM đang tắt, vì vậy tôi nghĩ có lẽ mình nên khởi động lại Apache và tôi đã làm như vậy, nhưng tôi cũng gặp lỗi tương tự và không có nhật ký mới nào trong error_log.

[centos@ip-172-35-25-65 ~]$ khởi động lại dịch vụ sudo httpd
Dừng httpd: [ OK ]
Bắt đầu httpd: [ OK ]
[centos@ip-172-35-25-65 ~]$ ngày
Thứ ba ngày 26 tháng 10 17:12:32 EDT 2021
[centos@ip-172-35-25-65 ~]$ 

Giờ mình chạy con rối config nhưng nó không chạy hết mà bị các file như vậy. Vì vậy, tôi tự hỏi những gì có thể là vấn đề. Một trong những tệp cấu hình Apache được tải vì tất cả các tệp có conf đều được tải như thế này:

<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>

Vậy tôi nên xem những tệp nào và làm cách nào để kiểm tra xem đó có phải là vấn đề của Apache không, bởi vì chúng tôi có định tuyến nginx đến véc ni và sau đó định tuyến đến Apache, vì vậy tôi nghĩ Apache là vấn đề, nhưng tôi không nhận được bất kỳ thông tin hữu ích nào từ nhật ký và Apache chạy mà không gặp vấn đề gì, chỉ là nó không phục vụ trang và Varnish không thể truy cập Apache vì lý do nào đó?

Tôi đang chạy CENTOS 6 và tôi có một máy chủ khác có cùng cấu hình đang chạy tốt, nhưng khi tôi tìm khác thư mục etc, tôi thực sự không thấy bất kỳ sự khác biệt đáng kể nào.

Điểm:1
lá cờ in

Dựa trên nhật ký của bạn, tôi có thể thấy rằng cả Varnish & Apache đều đang chạy trên cùng một máy. Varnish nên chạy trên cổng 80 và Apache trên cổng 8080.

Rõ ràng cũng có một Nginx đang chạy, vì vậy tôi cho rằng đó là để chấm dứt TLS, chạy trên cổng 443.

Bước 1: đảm bảo Apache lắng nghe thành công trên cổng 8080

Chạy sudo netstat -plnt để tìm ra cổng nào được sử dụng bởi mỗi dịch vụ.

Đảm bảo rằng httpd dịch vụ đang lắng nghe trên cổng 8080 và xác minh điều này bằng cách chạy cuộn tròn -I localhost:8080.

Bước 2: thêm đầu dò tình trạng cho phần phụ trợ trong tệp VCL của bạn

VCL tiêu chuẩn không cung cấp đầu dò tình trạng cho chương trình phụ trợ mặc định của bạn. Sử dụng mã VCL bên dưới, bạn có thể liên tục theo dõi tình trạng phụ trợ:

phụ trợ mặc định {
    .host = "127.0.0.1";
    .port = "8080";
    .thăm dò = {
        .url = "/";
        .thời gian chờ = 2s;
        .khoảng cách = 5s;
        .cửa sổ = 10;
        .ngưỡng = 5;
   }
}

Khi đầu dò được thêm vào và VCL mới được tải, bạn có thể gọi lệnh sau để kiểm tra tình trạng của phần phụ trợ, dựa trên đầu dò:

varnishlog -g raw -i backend_health

Nếu đầu ra chứa Vẫn còn bị bệnh, bạn biết rằng chương trình phụ trợ không khả dụng và mã trạng thái có thể cho bạn biết lý do tại sao lại như vậy.

Bước 3: nâng cấp máy chủ Varnish của bạn

Tôi không thể không chú ý đến các thuật ngữ như Tiêu đề Rx trong đầu ra VSL của bạn. Đây là một gợi ý rõ ràng rằng bạn đang sử dụng phiên bản cũ của Varnish không còn được hỗ trợ.

Ngay cả trong các phiên bản thực sự cũ của Varnish, Tiêu đề Rx đã được thay thế bằng Tiêu đề yêu cầu.

Lời khuyên của tôi: nâng cấp lên Véc ni 6.0 LTS. Phiên bản LTS này của Varnish đi kèm với các bản sửa lỗi và bản vá bảo mật thường xuyên. Nhìn thấy https://www.varnish-software.com/developers/tutorials/installing-varnish-centos/ để tìm hiểu cách cài đặt phiên bản này trên CentOS.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.