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,一般都不满足,所以还得手动下载opensslnginx也用最新的稳定版。

我的是用的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;
        }

    }

 

Logo

前往低代码交流专区

更多推荐