https 报错net::ERR_CONNECTION_RESET http却可以访问
环境:
前端代码使用vue框架,
后端tomcat8.0、nginx1.1
出现现象,在前端上传腾讯云图片后,调用接口将链接提交至后台时,链接超时。
nginx 日志没有接受到请求
前端控制台出现(下图)
偶尔可以提交成功(很少)
切换至http后一切正常
最终解决方案,
nginx切换到1.14,
nginx配置切换到http2.0协议(重要)
附:http2.0切换教程
(非原创)
一、nginx HTTP/2.0 配置
1.1
nginx并没有默认打包https2.0,所以得自行打包配置。
首先确认当前openssl版本,最低要求1.0.2,一般都不满足,所以还得手动下载openssl。nginx也用最新的稳定版。
我的是用的openssl1.1
openssl version -a
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
wget http://nginx.org/download/nginx-1.14.2.tar.gz
1.2 #解压
tar zxf openssl-1.1.0e.tar.gz && tar zxf nginx-1.14.2.tar.gz
cd nginx-1.14.2
1.3 #通过--with-http_v2_module 打包http2 --with-openssl指定openssl目录
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_v2_module --with-openssl=../openssl-1.1.0e
#make过程比较长,耐心等待
make
make install
1.4 最后在nginx conf server下配置
listen 443 ssl http2;
1.5重启nginx,
附 :关键配置文件
listen 443 ssl http2;
server {
listen 443 ssl http2;
server_name test.*.com;
ssl on;
ssl_certificate /usr/local/nginx/ssl/_.*.com_bundle.crt; #这里是ssl pem文件存放的绝对路径
ssl_certificate_key /usr/local/nginx/ssl/_.*.com.key; #这里是ssl key文件存放的绝对路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers off;
#listen 443 ssl http2;
location / {
root html/;
index index.html index.htm;
}
}