宝塔占用80端口完美修改

作为网站服务提供者,占用80端口情有可原,但有时候80端口要用来干其他事情(下期预告pihole)

寻找被占用的80端口

安装好nginx后,查看其加载的配置文件

nginx -t

nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

该配置文件引入了如下文件

include /www/server/panel/vhost/nginx/*.conf;

这个目录下有俩个文件

0.default.conf 
phpfpm_status.conf

其中第一个 0.default.conf是默认占用80端口文件,当请求匹配不到已经设置的vhost后,会默认进入此配置文件
可以看到指定了一个目录,该目录下就存放着‘找不到站点’的 html文件。将其80端口换掉即可

listen 80;
listen [::]:80;
***
root /www/server/nginx/html;

第二个文件 phpfpm_status.conf是宝塔面板用于查询nginxphp-fpm负载状态的,很遗憾他们使用了 80端口。
在此强烈建议宝塔团队将此端口换成内部定义端口

listen 80;
***
location /nginx_status {
        ***
}
...

将该文件的 80端口改掉即可,至此 80端口解除占用(如果你的vhost没有使用80端口的话)

你以为这就完了吗?

修改宝塔面板

前面提到,第二个文件是宝塔面板用来读取软件的负载信息的,如果我们直接改掉,那当然就可以看到下面的画面


信息获取失败

虽然可能八辈子不看这个页面,但是这个错误却让我相当的不爽。经过查找,该信息的获取是由宝塔面板前端发起的一个 ajax POST请求


ajax请求

最终在宝塔代码类文件中发现一个名为ajax的 py脚本,里面刚好就是有关代码。给请求的网址添加上自定义的端口,保存。

修改自定义端口

重启宝塔面板,访问 nginx负载页,信息变为正常


重启面板后

值得一提的是,改动端口后会影响俩个地方,nginx 和 PHP 俩个负载信息。但发现 PHP负载信息似乎并没有受到影响,经查看该部分信息获取是通过一个内部方法request_php(),尚不清楚内部运作原理

转载请注明 Saopanda和简书链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容