Apache已启用HTTP/2但仍以HTTP/1.1响应请求的问题求助
Apache已启用HTTP/2但仍以HTTP/1.1响应请求的问题求助
大家好,我最近碰到一个棘手的问题,折腾了好久都没解决,想请各位大神帮忙分析下。
我的服务器环境是:
- CentOS 7系统
- Apache/2.4.34 (Red Hat)
- OpenSSL/1.0.2k-fips
- PHP 7.4.33
我按照相关指南安装并启用了HTTP/2,整个过程没有报错,模块也确实加载成功了,但不管怎么测试,页面始终还是用HTTP/1.1来响应。
我已经排查过以下几个常见问题:
- 已经把MPM从prefork切换到了event,确认这个不是导致问题的原因
- 排除了浏览器缓存的影响,试过清空缓存、用隐身模式访问,结果还是一样
- Apache已经重启过好多次了,确保配置能生效
下面是我的相关配置和命令输出:
核心配置
配置文件中添加了:
Protocols h2 http/1.1
SSL协议配置:
SSLProtocol all -SSLv2 -SSLv3
httpd -V输出
Server version: Apache/2.4.34 (Red Hat) Server built: Oct 11 2022 12:56:44 Server's Module Magic Number: 20120211:79 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 Architecture: 64-bit Server MPM: event threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/opt/rh/httpd24/root/etc/httpd" -D SUEXEC_BIN="/opt/rh/httpd24/root/usr/sbin/suexec" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
apachectl -M输出(确认http2_module已加载)
core_module (static) so_module (static) http_module (static) access_compat_module (shared) actions_module (shared) alias_module (shared) allowmethods_module (shared) auth_basic_module (shared) auth_digest_module (shared) authn_anon_module (shared) authn_core_module (shared) authn_dbd_module (shared) authn_dbm_module (shared) authn_file_module (shared) authn_socache_module (shared) authz_core_module (shared) authz_dbd_module (shared) authz_dbm_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_owner_module (shared) authz_user_module (shared) autoindex_module (shared) cache_module (shared) cache_disk_module (shared) cache_socache_module (shared) data_module (shared) dbd_module (shared) deflate_module (shared) dir_module (shared) dumpio_module (shared) echo_module (shared) env_module (shared) expires_module (shared) ext_filter_module (shared) filter_module (shared) headers_module (shared) http2_module (shared) include_module (shared) info_module (shared) log_config_module (shared) logio_module (shared) macro_module (shared) mime_magic_module (shared) mime_module (shared) negotiation_module (shared) remoteip_module (shared) reqtimeout_module (shared) request_module (shared) rewrite_module (shared) setenvif_module (shared) slotmem_plain_module (shared) slotmem_shm_module (shared) socache_dbm_module (shared) socache_memcache_module (shared) socache_shmcb_module (shared) status_module (shared) substitute_module (shared) suexec_module (shared) unique_id_module (shared) unixd_module (shared) userdir_module (shared) version_module (shared) vhost_alias_module (shared) watchdog_module (shared) dav_module (shared) dav_fs_module (shared) dav_lock_module (shared) lua_module (shared) mpm_event_module (shared) proxy_module (shared) lbmethod_bybusyness_module (shared) lbmethod_byrequests_module (shared) lbmethod_bytraffic_module (shared) lbmethod_heartbeat_module (shared) proxy_ajp_module (shared) proxy_balancer_module (shared) proxy_connect_module (shared) proxy_express_module (shared) proxy_fcgi_module (shared) proxy_fdpass_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_hcheck_module (shared) proxy_scgi_module (shared) proxy_uwsgi_module (shared) proxy_wstunnel_module (shared) ssl_module (shared) systemd_module (shared) php7_module (shared)
虚拟主机配置(更新后)
<VirtualHost _default_:443> DocumentRoot "/var/www/html" ServerName ### ServerAlias www ### Protocols h2 h2c http/1.1 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/###.ro/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/###/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/###/chain.pem </VirtualHost>
测试结果
用HTTP/2检测工具测试后,得到的结果是:
HTTP/2 protocol is not supported.
ALPN extension is not supported.
实在找不到问题出在哪了,有没有朋友遇到过类似情况,或者能给我一些排查方向?感谢大家!
备注:内容来源于stack exchange,提问作者qlangiul
相关产品推荐
相关产品推荐

