论坛迁移到proxmox超融合私有云平台后后部分功能不能使用的解决方法

举报
技术火炬手 发表于 2019/04/30 09:55:25 2019/04/30
【摘要】 考虑到在山东移动机房租赁的物理服务器的存在单点,并时不时出现故障,导致业务停止,因此决定从物理服务器把某个老牌论坛迁移到可用性极高的proxmox超融合私有云平台。

问题描述

考虑到在山东移动机房租赁的物理服务器的存在单点,并时不时出现故障,导致业务停止,因此决定从物理服务器把某个老牌论坛迁移到可用性极高的proxmox超融合私有云平台。昨天夜里,兄弟们忙乎了一整夜,很是辛苦(我在11点对那些坏掉的文件系统进行修复,用screen仍在那里,自己睡觉去了)。

上午睡了个懒觉,还没清醒过来,有电话、qq消息过来了,说论坛页面能打开,详情页也没问题,但不能签到、发帖、发附件等。

image.png

催得厉害,赶紧进行处理。

运行环境

主要包括负载均衡及超融合私有云proxmox。负载均衡负责用户转发,使用的是公网ip;超融合私有云proxmox使用的是四个节点的物理服务器,运行30几个虚拟机。

image.png

域名解析到负载均衡的vip,haproxy负责把请求转发到proxmox上的指定的虚拟机。由于论坛容量不是很大(400G左右),就直接把论坛程序、附件及数据库部署在同一个虚拟机上(其它的应用,程序与数据库是分离的)。

基本思路

超融合私有云平台proxmox上的其它虚拟机及应用都是正常状态,因此可以排除底层架构的问题。

另外两个大的排查点就是负载均衡及论坛虚拟机本身。其他兄弟怀疑是负载均衡配置的问题,还发来了相关操作信息。

image.png

我一直强调,一定要先从后端真实提供服务的系统进行排查,真实服务提供者有问题,排查负载均衡有什么用处呢?

问题定位

登录系统,查看论坛的配置,主要是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文件,浏览器访问论坛,测试签到、发帖等,一切恢复正常!

--------------

本文转自sery博客51CTO博客

原文链接:https://blog.51cto.com/sery/2385611

如需转载,请联系作者授权



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。