QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

微信扫一扫 分享朋友圈

已有 2609 人浏览分享

开启左侧

解决方案:nginx开启http2、openssl版本不一致、redis重启后需要flushall

[复制链接]
2609 0
  近日网站服务器更新PHP版本到8.x,发现网站打不开了,报错。听dz官方说是支持了php8的,那不知道是插件还是模板里面的函数出了问题,不支持php8,于是赶紧回退到php7,并yum更新了所有软件。这一回退更新不打紧,整出了多个问题,让我好生头疼。
ae55fa78517cf91a5608d2bcf95757a8_36cda7abf7884c8393d329b3874cba07.jpeg
  问题1.redis缓存数据库每次重启服务器后,需要flushall刷新数据,否则网站数据为空,页面标题显示:提示信息 Array()字样;
  问题2.openssl安装版本和nginx显示的版本不一致,openssl安装版本为openssl1.1.1w,而nginx显示的版本为openssl1.0.2u。并且,重启服务器后,nginx不能载入conf配置文件,需要手动指定文件位置载入;
  问题3.之前自己开发的网站会员登录脚本程序功能失效,无法登录。这固然是我在服务器禁用了TLS1.0的原因,但如何解决心里没底。
  虽然手动开启后网站运行如常,但不能自动化让我一直如鲠在喉,欲解决而后快,于是在昨天半夜时分,一狠心决定彻底解决上述问题。
  首先是更新了服务器linux内核,从3.x升级到了6.x。再就是针对openssl版本不一致的问题,重新下载了openssl和nginx源码,并编译安装nginx1.25.3,在编译时,指定编译参数,将最新版openssl的源码路径传入,安装完成后,发现nginx -V显示的openssl与新安装的openssl版本一致了,问题2解决了。
  然后,下载了与phpinfo()中对应的redis版本源码,编译安装,并设置好环境变量路径,重启后问题1也消失了。
  针对问题3,看网上说是可能需要重新编译php,这个我还没想好,暂时不动,因为说不定年底还是要升级到php8的,没必要再折腾php7。
  问题基本得到了解决,于是安心睡觉。睡前得出了一个结论:安装软件尽量采用源码编译的方式,yum安装方式不够灵活,版本也不好控制。
image.jpg
  今天上午,又打开测速工具,看看网站速度如何,一测发现评分居然下降了,说明网站打开速度变慢了,怎么回事呢?
image.jpg
  看一下测速工具给出来的原因,原来是网站还是用的http1.1传输协议,我记得之前是http2的呀,怎么回退到1.1了,打开nginx的配置文件查看究竟。
发现提示:nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/wancili.conf:12
image.jpg
  原来这里以前是这样写的:listen 443 ssl http2 fastopen=256 reuseport;
  提示说这种写法不被支持了。查阅相关资料后得知,原来nginx1.25之后,不仅开始支持http3,也将http2直接当成了一个开关,写法变成了:http2 on;这样子。
image.jpg
  按照官方的意思,改写了上述配置文件,nginx -s reload后,再测试发现网站速度评分又上去了!

上一篇:Panasonic松下HC-PV100GK数码摄像机固件升级包(1.07版)
下一篇:php7.4报错:Unable to load dynamic library 'redis.so'
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

36

关注

177

粉丝

13659

主题
热门资讯
网友晒图
  • 公众号

    微信公众号

  • 微信

    站长微信

Powered by Discuz! 在此致以诚挚谢意!

CopyRight © 2011-2024 wancili.com