这些 Nginx 常见问题,帮你快速定位故障
虽然知道应该和证书关系不大,但是还是决定更换一个证书看看,因为之前是RSA的证书,那我换个ECC的证书试试(推荐七牛云SSL证书申请,可以选择ECC证书) 换过之后有新的发现 curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s). 无法与对等体安全通信:无通用加密算法 问题没解决,还出来新问题了,猜测ECC算法兼容性问题,通过一番google之后,了解到如下信息: 原来Redhat/CentOS服务器上curl默认是使用NSS库的,而在这两个系统上curl默认是禁用ECC加密的,虽然服务端加密套件支持ECC,但是客户端不支持,所以请求失败,需要客户端curl通过指定加密套件来请求 curl --ciphers ecdhe_rsa_aes_128_gcm_sha_256 ... 指定加密套件后,又回到起点,仍然是原来的错误,看来和证书没有关系 柳暗花明没办法,仔细对比了其他网站的nginx配置,没什么不一样,只是没有配ssl_session_cache,以我对该参数的了解,该参数只是作为ssl优化的一个配置,起到缓存的作用,减少握手次数,但是现在已经“穷途末路”了,先配上再说 万万没想到,好了 总结如下: ssl_session_cache有4个可选参数 off 严禁使用session缓存:nginx明确告诉客户端session可能不会被重用 none session缓存的使用被禁止:nginx告诉客户端session可能会被重用,但实际上并不会将session参数存储在缓存中 builtin 在OpenSSL中构建的缓存;仅由一个工作进程使用。缓存大小在session中指定。如果没有给出大小,则等于20480个会话。使用内置高速缓存可能导致内存碎片 shared 所有工作进程之间共享缓存。缓存大小以字节为单位指定;一兆字节可以存储大约4000个session。每个共享缓存都应该有一个任意名称。具有相同名称的缓存可以用于多个虚拟服务器 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |