Điểm:0

Đã bật hỗ trợ HTTP/2 trong apache2 v2.4.25 trên Debian 9.13 nhưng các thử nghiệm cho thấy không có hỗ trợ cho HTTP/2

lá cờ ve

Tôi đang cố định cấu hình hỗ trợ HTTP/2 nhưng đã xảy ra sự cố

Máy chủ của tôi là vm công cụ điện toán google chạy phiên bản máy chủ Debian 9.13 (kéo dài) Apache/2.4.25 với các chứng chỉ SSL được định cấu hình bằng OpenSSL. Khi tôi chạy phiên bản opensl nó báo version 1.1.1g. Khi chạy phpinfo(); nó báo cáo OpenSSL/1.0.2u. Phiên bản PHP 7.4.11 và phpinfo(); cũng báo cáo...

SSL_VERSION_INTERFACE -> mod_ssl/2.4.25
SSL_VERSION_LIBRARY -> OpenSSL/1.0.2u
SSL_PROTOCOL -> TLSv1.2

tôi đã làm theo hướng dẫn đây để "Bật mô-đun HTTP/2 trong Apache" và "Bật HTTP/2 trong máy chủ ảo Apache của bạn" và cả đây. Sau khi làm như vậy, khi tôi chạy lệnh apache2ctl -M | grep http2 nó trở lại http2_module (được chia sẻ) báo hiệu Hỗ trợ HTTP/2 được bật. Nhưng nó không được sản xuất.

Đây là dòng được sử dụng trong tệp cấu hình máy chủ ảo apache2 của tôi /etc/apache2/sites-available/default-ssl.conf

<Máy chủ ảo _default_:443>
    Giao thức h2 h2c http/1.1
    ...

Dưới đây là thông tin kết nối dài dòng khi sử dụng cuộn tròn -vso http2_debug.log --http2 https://pharealty.com/ lệnh tải xuống trang thành công.

* Đang thử 35.236.101.224...
* Bộ TCP_NODELAY
* Đã kết nối với pharealty.com (35.236.101.224) cổng 443 (#0)
* ALPN, cung cấp h2
* ALPN, cung cấp http/1.1
* Lựa chọn mật mã: TẤT CẢ:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* đặt thành công vị trí xác minh chứng chỉ:
* Tệp CA: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), tiêu đề TLS, Trạng thái chứng chỉ (22):
} [dữ liệu 5 byte]
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
} [Dữ liệu 512 byte]
* TLSv1.2 (IN), TLS handshake, Server hello (2):
{ [dữ liệu 109 byte]
* TLSv1.2 (IN), bắt tay TLS, Chứng chỉ (11):
{ [dữ liệu 4036 byte]
* TLSv1.2 (IN), bắt tay TLS, trao đổi khóa máy chủ (12):
{ [dữ liệu 333 byte]
* TLSv1.2 (IN), bắt tay TLS, Máy chủ hoàn tất (14):
{ [dữ liệu 4 byte]
* TLSv1.2 (OUT), bắt tay TLS, Trao đổi khóa máy khách (16):
} [dữ liệu 70 byte]
* TLSv1.2 (OUT), mật mã thay đổi TLS, Client hello (1):
} [dữ liệu 1 byte]
* TLSv1.2 (OUT), bắt tay TLS, Đã hoàn thành (20):
} [dữ liệu 16 byte]
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
{ [dữ liệu 1 byte]
* TLSv1.2 (IN), bắt tay TLS, Đã hoàn thành (20):
{ [dữ liệu 16 byte]
* Kết nối SSL sử dụng TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, máy chủ được chấp nhận sử dụng http/1.1
* Chứng chỉ máy chủ:
* chủ đề: CN=pharealty.com
* ngày bắt đầu: 10 tháng 7 01:53:04 2021 GMT
* ngày hết hạn: 8 tháng 10 01:53:03 2021 GMT
* chủ đềAltName: máy chủ "pharealty.com" khớp với "pharealty.com" của chứng chỉ
* tổ chức phát hành: C=US; O=Hãy mã hóa; CN=R3
* Chứng chỉ SSL xác minh ok.
} [dữ liệu 5 byte]
> NHẬN / HTTP/1.1
> Chủ nhà: pharealty.com
> Tác nhân người dùng: curl/7.52.1
> Chấp nhận: */*
>
{ [dữ liệu 5 byte]
< HTTP/1.1 200 OK
< Ngày: Thứ tư, ngày 08 tháng 9 năm 2021 17:20:21 GMT
< Máy chủ: Apache
< Nâng cấp: h2,h2c
< Kết nối: Nâng cấp
< Đặt cookie: PHPSESSID=1mv9jqka4n7c7fb6qmtavfsgue; đường dẫn =/
< Hết hạn: Thứ năm, ngày 19 tháng 11 năm 1981 08:52:00 GMT
< Kiểm soát bộ đệm: không lưu trữ, không có bộ đệm, phải xác thực lại
< Pragma: không có bộ đệm
<X-Pingback: https://pharealty.com/xmlrpc.php
< Liên kết: <https://pharealty.com/wp-json/>; rel="https://api.w.org/"
< Liên kết: <https://pharealty.com/wp-json/wp/v2/pages/48>; rel="thay thế"; gõ = "ứng dụng/json"
< Liên kết: <https://pharealty.com/>; rel=liên kết rút gọn
< Set-Cookie: phaLandingPage=%2F; hết hạn=Tue, 08-Mar-2022 17:20:21 GMT; Tuổi tối đa=15638400; đường dẫn =/
< Thay đổi: Chấp nhận-Mã hóa
< Chuyển mã hóa: chunked
< Loại nội dung: văn bản/html; bộ ký tự = UTF-8
<
{ [dữ liệu 7 byte]
* Curl_http_done: gọi là quá sớm == 0
* Kết nối #0 đến host pharealty.com còn nguyên

Lúc đầu có vẻ như nó hoạt động hoàn hảo, sau đó trở lại HTTP/1.1

Theo như tôi có thể nói, tôi đã có một phiên bản OpenSSL đủ mới. Và mặc dù trang này mà tôi đã đề cập trước đây rất khuyên dùng phiên bản apache cao hơn 2.4.25, tôi không thể cập nhật apache lên bất kỳ thứ gì khác ngoài 2.4.25.

Tôi có cần thiết lập chứng chỉ SSL mới sau khi thực hiện chuyển đổi không? Phiên bản của apache có gây ra sự cố không?

Tôi đã thử nghiệm trang này trên một số trang web thử nghiệm http/2 và lần nào nó cũng bị lỗi.

djdomi avatar
lá cờ za
Vui lòng nâng cấp gấp máy chủ của bạn, Stretch is OOS - bạn đã bật nó theo cách thông thường hay chỉ trên một máy chủ cụ thể? mặc định không có nghĩa là nó hoạt động cho tất cả mọi người.
djdomi avatar
lá cờ za
Cập nhật bổ sungE: xác minh tình huống của bạn: https://www.howtoforge.com/how-to-enable-http-2-in-apache/
hyjinx avatar
lá cờ ve
@djdomi vâng, tôi không thể tin rằng mình chưa nâng cấp hệ điều hành. Quản lý để giữ cho mọi thứ khác được cập nhật ngoại trừ điều đó, jeez. Tôi đang nâng cấp lên Debain 10 buster. Tôi có nên chỉnh sửa cấu hình để sử dụng dấu hoa thị thay thế không? Tôi không thể nhớ làm thế nào hoặc tại sao nó hiện được đặt thành ```_default_```.
djdomi avatar
lá cờ za
Trước tiên tôi sẽ cập nhật, sau đó nâng cấp và thêm tiêu đề giao thức vào vhost
hyjinx avatar
lá cờ ve
@djdomi sau khi nâng cấp lên Debian 10 buster và làm theo các bước trong liên kết mà bạn cung cấp, tôi đã có thể làm cho mọi thứ hoạt động. Tôi đã cố gắng làm cho nó hoạt động với Debian 10 và PHP 7.4 nhưng không được. Sử dụng PHP 7.3 đã hoạt động vì có sẵn php7.3-fpm. Nhưng sau khi quay trở lại 7.3 từ 7.4, tôi phải cài đặt lại tất cả các tiện ích mở rộng PHP. Các lệnh để tắt PHP, bật PHP-FPM, tắt mpm_prefork và bật mpm_event, là điều đã tạo ra sự khác biệt trong việc tìm kiếm giải pháp của tôi. Nếu bạn đăng nhận xét của mình dưới dạng câu trả lời, tôi sẽ gắn cờ nhận xét đó là câu trả lời và giúp bạn nhận được điểm.
djdomi avatar
lá cờ za
Tôi đã làm điều đó, vui lòng cập nhật câu hỏi trong trường hợp bạn vẫn gặp sự cố và vâng, bạn có thể phải cài đặt các mô-đun cần thiết cho từng phiên bản php riêng biệt mà bạn có thể muốn xem [tập lệnh trang github của tôi](https://raw.githubusercontent .com/djdomi/php-install/master/run.sh) để cài đặt tất cả các mô-đun phổ biến
Điểm:0
lá cờ za

Nâng cấp lên hệ điều hành được hỗ trợ

Bạn đã sử dụng Debian Stretch, mà Hỗ trợ chính là IMHO đã có EOL. (Cuối cuộc đời)
Các bản vá bảo mật vẫn có sẵn cho đến khi 2022-06-30.

Thay đổi Mô-đun Xử lý Apache

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

Kích hoạt mô-đun SSL & http2

sudo a2enmod ssl  
sudo a2enmod http2  

Bật hỗ trợ http2 toàn cầu hoặc qua vhost

Thêm vào Apache2.conf:

Giao thức h2 http/1.1

Hoặc Chỉnh sửa vhost và thêm Giao thức h2 http/1.1

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/public_html/example.com
  SSLEngine on
  SSLCertificateKeyFile /path/to/private.pem
  SSLCertificateFile /path/to/cert.pem
  SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
  Protocols h2 http/1.1 #add this here
</VirtualHost>

Nhắc tải lại Máy chủ Apache.

sudo systemctl khởi động lại apache2

để tìm nạp tất cả các phiên bản php, bạn có thể xem qua tập lệnh bash của tôi

https://raw.githubusercontent.com/djdomi/php-install/master/run.sh

Thẩm quyền giải quyết

Về hướng dẫn này

hyjinx avatar
lá cờ ve
Chuẩn rồi. Cập nhật Debian và sau đó thực hiện lại các bước là thủ thuật. Tôi đã sử dụng PHP 7.4 nhưng không thể tiếp tục sử dụng vì không có mô-đun php7.4-fpm để bật sau khi tắt php7.4. Vì vậy, tôi đã hoàn nguyên về PHP 7.3 và quá trình chuyển đổi sang HTTP/2 đã hoàn tất.Điều duy nhất còn lại là cài đặt tất cả các tiện ích mở rộng PHP 7.3 mà tôi đã thiếu. Tất cả các trang web thử nghiệm hiện đang cho kết quả dương tính với HTTP/2. Và điểm tốc độ trang trên thiết bị di động đã tăng 12 điểm trên Google Page Speed ​​Insights sau HTTP/2. Cảm ơn bạn đã giúp đỡ. Tôi không thể tin rằng tôi đã không nghĩ đến việc cập nhật hệ điều hành.
djdomi avatar
lá cờ za
php7. Chắc chắn là 4-fpm sẽ khả dụng sau khi chạy tập lệnh của tôi, thậm chí tôi nghĩ rằng php8 cũng vậy

Đă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.