MAMP Pro 中的 HTTP2 支持
HTTP2 support in MAMP Pro
有没有办法在 MAMP Pro 中启用 HTTP2 支持?我想用 HTTP2 支持测试和改进我的一些本地开发网站。
我已经搜索了一段时间,但还没有找到一个解决方案。
如果您使用的是 Nginx,您只需将以下代码添加到您的服务器块或 http 块(对于全局)到 nginx.conf
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
否则,如果 Apache 可以执行上述操作,则打开 Nginx 设置并启用 "Use Nginx as a Reverse Proxy of Apache"
对于 MAMP Pro v4.0.0
C:\>F:\MAMP\bin\nginx\nginx.exe -V
nginx version: nginx/1.13.1
built by cl 16.00.40219.01 for 80x86
built with OpenSSL 1.0.1m 19 Mar 2015
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe
--http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre --with-zl
ib=objs/lib/zlib --with-openssl=objs/lib/openssl --with-select_module --with-http_ssl_module --add-module=c:/MinGW/msys/1.0/home/Nebojsa/subsmodule/ngx_http_substitutions_filter_module
Nginx 未构建 HTTP2
支持
C:\>F:\MAMP\bin\apache\bin\httpd.exe -V
Server version: Apache/2.2.31 (Win32)
Server built: May 6 2016 10:19:53
Server's Module Magic Number: 20051115:40
Server loaded: APR 1.5.2, APR-Util 1.5.4
Compiled using: APR 1.5.2, APR-Util 1.5.4
Architecture: 32-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/winnt"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/apache"
-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"
如果您查看 Apache HTTP2 模块
Apache Module mod_http2
Available Languages: en
Description: Support for the HTTP/2 transport layer
Status: Extension
Module Identifier: http2_module
Source File: mod_http2.c
Compatibility: Available in version 2.4.17 and later
使用 Apache 2.2.31
的 MAMP Pro 4 不符合 Apache 的最低版本要求。
因此您不能使用 HTTP2 模块。最好通过 docker 使用其他较新版本的 apache 或直接使用 HTTP2
正如 Tarun 所说,MAMP pro 中包含的 Apache 和 Nginx 版本不支持 HTTP/2。此外 HTTP/2 需要现代版本的 OpenSSL (1.0.2) 才能在大多数浏览器上支持 HTTP/2。
因此,您最好的选择是更改 Apache and/or Nginx 以支持此功能。然后,您可以复制适当的配置以连接到 MAMP 堆栈的其余部分(例如 MySQL、PHP..等)。
如果您在 Windows,那么 ApacheHaus and Apache Lounge offer up to date Apache versions with HTTP/2 support. Or if you prefer Nginx then can download these directly from Nginx。
如果您使用的是 MacOS,那么 Homebrew 允许您安装最新版本的 Apache 和 Nginx。
或者您可以使用 Docker 图像,如果为此设置的话,或者可以从源代码编译(对于 MacOS 来说相对简单,与 linux 非常相似,但对于Windows).
最近我用NGINX在MAMP Pro上为NodeJS APP配置了HTTP2。我写了一篇关于它的短文 https://www.linkedin.com/pulse/nodejs-http2-server-mamp-pro-nginx-sergei-iastrebov/ 我认为它会对你有所帮助。
有没有办法在 MAMP Pro 中启用 HTTP2 支持?我想用 HTTP2 支持测试和改进我的一些本地开发网站。
我已经搜索了一段时间,但还没有找到一个解决方案。
如果您使用的是 Nginx,您只需将以下代码添加到您的服务器块或 http 块(对于全局)到 nginx.conf
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
否则,如果 Apache 可以执行上述操作,则打开 Nginx 设置并启用 "Use Nginx as a Reverse Proxy of Apache"
对于 MAMP Pro v4.0.0
C:\>F:\MAMP\bin\nginx\nginx.exe -V
nginx version: nginx/1.13.1
built by cl 16.00.40219.01 for 80x86
built with OpenSSL 1.0.1m 19 Mar 2015
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe
--http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs/lib/pcre --with-zl
ib=objs/lib/zlib --with-openssl=objs/lib/openssl --with-select_module --with-http_ssl_module --add-module=c:/MinGW/msys/1.0/home/Nebojsa/subsmodule/ngx_http_substitutions_filter_module
Nginx 未构建 HTTP2
支持
C:\>F:\MAMP\bin\apache\bin\httpd.exe -V
Server version: Apache/2.2.31 (Win32)
Server built: May 6 2016 10:19:53
Server's Module Magic Number: 20051115:40
Server loaded: APR 1.5.2, APR-Util 1.5.4
Compiled using: APR 1.5.2, APR-Util 1.5.4
Architecture: 32-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/winnt"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/apache"
-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"
如果您查看 Apache HTTP2 模块
Apache Module mod_http2
Available Languages: en
Description: Support for the HTTP/2 transport layer
Status: Extension
Module Identifier: http2_module
Source File: mod_http2.c
Compatibility: Available in version 2.4.17 and later
使用 Apache 2.2.31
的 MAMP Pro 4 不符合 Apache 的最低版本要求。
因此您不能使用 HTTP2 模块。最好通过 docker 使用其他较新版本的 apache 或直接使用 HTTP2
正如 Tarun 所说,MAMP pro 中包含的 Apache 和 Nginx 版本不支持 HTTP/2。此外 HTTP/2 需要现代版本的 OpenSSL (1.0.2) 才能在大多数浏览器上支持 HTTP/2。
因此,您最好的选择是更改 Apache and/or Nginx 以支持此功能。然后,您可以复制适当的配置以连接到 MAMP 堆栈的其余部分(例如 MySQL、PHP..等)。
如果您在 Windows,那么 ApacheHaus and Apache Lounge offer up to date Apache versions with HTTP/2 support. Or if you prefer Nginx then can download these directly from Nginx。
如果您使用的是 MacOS,那么 Homebrew 允许您安装最新版本的 Apache 和 Nginx。
或者您可以使用 Docker 图像,如果为此设置的话,或者可以从源代码编译(对于 MacOS 来说相对简单,与 linux 非常相似,但对于Windows).
最近我用NGINX在MAMP Pro上为NodeJS APP配置了HTTP2。我写了一篇关于它的短文 https://www.linkedin.com/pulse/nodejs-http2-server-mamp-pro-nginx-sergei-iastrebov/ 我认为它会对你有所帮助。