速来围观老司机快速排错--解决论坛迁移到proxmox超融合私有云平台后后部分功能不能使用的问题
问题描述
考虑到在山东移动机房租赁的物理服务器的存在单点,并时不时出现故障,导致业务停止,因此决定从物理服务器把某个老牌论坛迁移到可用性极高的proxmox超融合私有云平台。昨天夜里,兄弟们忙乎了一整夜,很是辛苦(我在11点对那些坏掉的文件系统进行修复,用screen仍在那里,自己睡觉去了)。
上午睡了个懒觉,还没清醒过来,有电话、qq消息过来了,说论坛页面能打开,详情页也没问题,但不能签到、发帖、发附件等。
催得厉害,赶紧进行处理。
运行环境
主要包括负载均衡及超融合私有云proxmox。负载均衡负责用户转发,使用的是公网ip;超融合私有云proxmox使用的是四个节点的物理服务器,运行30几个虚拟机。
域名解析到负载均衡的vip,haproxy负责把请求转发到proxmox上的指定的虚拟机。由于论坛容量不是很大(400G左右),就直接把论坛程序、附件及数据库部署在同一个虚拟机上(其它的应用,程序与数据库是分离的)。
基本思路
超融合私有云平台proxmox上的其它虚拟机及应用都是正常状态,因此可以排除底层架构的问题。
另外两个大的排查点就是负载均衡及论坛虚拟机本身。其他兄弟怀疑是负载均衡配置的问题,还发来了相关操作信息。
我一直强调,一定要先从后端真实提供服务的系统进行排查,真实服务提供者有问题,排查负载均衡有什么用处呢?
问题定位
登录系统,查看论坛的配置,主要是nginx及php。论坛页面可以打开,可以初步断定php没什么问题。
接下来,打开nginx配置看看,主配置文件有如下几行包含项:
include vhosts/default.conf; include vhosts/bbs.formyz.net.conf; include vhosts/file.formyz.net.conf; include vhosts/net.formyz.net.conf;
include vhosts/default.conf; include vhosts/bbs.formyz.net.conf; include vhosts/file.formyz.net.conf; include vhosts/net.formyz.net.conf; |
对nginx进行语法检查,未发现异常。老办法,查nginx错误日志,很快有如下发现:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream |
心中有底了,一定是哪个包含文件配置上有问题。分别对这三个配置文件进行备份,然后挨个打开,发先有两个配置文件里,嵌套了包含项如下:
root /data/html/bbs.formyz.net; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf;
root /data/html/bbs.formyz.net; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; |
而另外一个配置文件里,嵌套的项确是这样的:
root /data/html/bbs.formyz.net; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params;
root /data/html/bbs.formyz.net; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; |
再比较文件fastcgi.conf与文件fastcgi_params,不同之处如下:
Fastcgi.conf | fastcgi_params |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | fastcgi_param SCRIPT_NAME $fastcgi_script_name; |
把不一致的嵌套包含,都改成include fastcgi.conf,重启nginx。绑定服务器的主机名及ip到本地的hosts文件,浏览器访问论坛,测试签到、发帖等,一切恢复正常!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云服务器安装postfix--邮箱服务(排坑过程详解)
一、邮件服务需求 在实际生产环境中,我们的服务器难免会发生故障,这时候就需要有邮件通知运维人员,及时查出问题,解决问题。所以邮件服务在生产中有着不可或缺的作用! 二、操作环境 操作系统:CentOS 7 64位 三、安装步骤 1.直接yum 安装 yum install mailx -y 2.修改配置文件 vim /etc/mail.rc 在末行插入:set from=**2664@qq.com #涉及隐私,未展示出账号set smtp=smtp.qq.comset smtp-auth-user=**2664@qq.com #涉及隐私,未展示出账号set smtp-auth-password=邮箱密码 #涉及隐私,未展示出密码set smtp-auth=login 3.测试邮件发送 echo "hello world" | mail -s "testmail" 1***2664@qq.com 坑一(腾讯的坑): 你会发现邮件无法发送出去,报警信息如下图: 这时候,你要检查账户密码是否输入正确,在你再三确认后,你发现依旧发送失败,几近崩溃!其实,这是腾讯给挖的坑,腾讯邮箱需要开启客户端授...
- 下一篇
删除vSAN中不可访问对象的方法
vSAN是VMware推出的用于vSphere系列产品、为虚拟环境优化的分布式可容错的存储系统。vSAN是VMware对ESXi主机本地存储设备(包括SSD与HDD)进行集中管理、空间分配使用的一种方式或一种新的技术。现在一些vSphere数据中心已经使用vSAN组成的分布式存储代替传统、专业的共享存储并获得了更好的性能。在使用vSAN存储的过程中,可能会出现一些“不可访问”的对象。虽然这些“不可访问”的对象对虚拟机的正常运行不会造成影响,但因为有“不可访问”对象存在,在正常的vSAN维护中或vSAN磁盘模式升级中,这些“不可访问”的对象不能迁移到其他主机会导致进入维护模式或升级vSAN磁盘格式失败。如果要解决这个问题,就需要强制删除这些“不可访问”的对象。下面通过具体的实例进行介绍。 (1)某4台ESXi主机组成的标准vSAN群集,在“监控→vSAN→运行状况”的“数据→vSAN对象运行状况”中有“不可访问”的对象,如图1-1所示。单击“立即修复对象”按钮无法修复。 图1-1 vSAN对象运行状况检查到不可访问对象 (2)这4台主机原来运行的是vSphere 6.7.0,vSAN磁盘...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- CentOS7安装Docker,走上虚拟化容器引擎之路