简介
HTTP/2 (原名HTTP/2.0)即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。HTTP 2.0在2013年8月进行首次合作共事性测试。在开放互联网上HTTP 2.0将只用于https://网址,而 http://网址将继续使用HTTP/1,目的是在开放互联网上增加使用加密技术,以提供强有力的保护去遏制主动攻击。DANE RFC6698允许域名管理员不通过第三方CA自行发行证书。
一、前置要求
Nginx1.10.0以上版本才支持Http2.0,如果使用的是Tengine,版本需要大于2.2.1,且需要添加--with-http_v2_module模块。
Http2.0只支持Https协议的网站,且openssl版本需要高于1.0.2。
二、检查当前Nginx的版本及安装的组件(组件未安装)
[root@VM-0-2-centos sbin]#
[root@VM-0-2-centos sbin]# ./nginx -V
nginx version: nginx/1.19.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/nginx --pid-path=/nginx/nginx.pid --lock-path=/nginx.lock --error-log-path=/nginx/error.log --http-log-path=/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/nginx/client --http-proxy-temp-path=/nginx/proxy --http-fastcgi-temp-path=/nginx/fastcgi --http-uwsgi-temp-path=/nginx/uwsgi --http-scgi-temp-path=/nginx/scgi --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --with-http_gzip_static_module --with-http_sub_module
三、编译配置安装
在解压后的nginx目录下执行以下脚本,安装目录根据个人实际环境修改
./configure \
--prefix=/nginx \
--pid-path=/nginx/nginx.pid \
--lock-path=/nginx.lock \
--error-log-path=/nginx/error.log \
--http-log-path=/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/nginx/client \
--http-proxy-temp-path=/nginx/proxy \
--http-fastcgi-temp-path=/nginx/fastcgi \
--http-uwsgi-temp-path=/nginx/uwsgi \
--http-scgi-temp-path=/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_sub_module
四、安装
在编译后的nginx目录下执行以下命令,在执行前请关闭nginx进程。
make
nake install
五、修改配置 文件
在配置文件如下位置,添加http2
server
{
listen 80;
listen 443 ssl http2;
server_name img.collick.xyz; #这里写你网站的域名,注意别删掉结尾的分号
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/default; #这里写你网站根目录的地址
real_ip_header X-Forwarded-For; #用于接收远端frps服务器上nginx传递的真实IP
real_ip_recursive on;
#省略
六、检查配置文件是否正确
[root@VM-0-2-centos sbin]# ./nginx -t
nginx: the configuration file /nginx/conf/nginx.conf syntax is ok
nginx: configuration file /nginx/conf/nginx.conf test is successful
七、启动nginx进程
[root@VM-0-2-centos sbin]# ./nginx
[root@VM-0-2-centos sbin]# ps -ef | grep nginx
root 13572 1 0 21:44 ? 00:00:00 nginx: master process ./nginx
nobody 13573 13572 0 21:44 ? 00:00:00 nginx: worker process
root 19347 32280 0 22:23 pts/1 00:00:00 grep --color=auto nginx