1.首先确保nginx版本编译的时候有http_v2_module和http_ssl_module模块
2.OpenSSL版本大于等于 1.0.2
我的nginx安装在/usr/local/nginx2/文件夹
[root@email ~]# /usr/local/nginx2/sbin/nginx -V
nginx version: nginx/1.19.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx2 --with-http_ssl_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-poll_module --with-http_realip_module --with-stream --with-stream_ssl_module
server {
listen 443 ssl http2;
server_name www.buruyouni.com;
ssl_certificate /etc/cert/www.buruyouni.com.pem;
ssl_certificate_key /etc/cert/www.buruyouni.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php/$1 last;
}
index index.php index.html index.phtml index.htm;
root /usr/local/nginx/html/yafcms/public;
}
location ~ .php(.*)$ {
root /usr/local/nginx/html/yafcms/public;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
如果不支持http_v2_module和http_ssl_module模块,则需要重新安装nginx
wget http://nginx.org/download/nginx-1.19.6.tar.gz (最新版2021-01-06,支持http2)
tar -zxvf nginx-1.19.6.tar.gz
cd nginx-1.19.6
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-poll_module --with-http_realip_module --with-stream --with-stream_ssl_module
make && make install