首页 帮助中心 美国云服务器 Linux 中用mod_status监控Apache负载
Linux 中用mod_status监控Apache负载
时间 : 2024-11-26 10:33:21 编辑 : 华纳云 阅读量 : 57

在Linux系统中如果想要监控Apache服务器的负载可以通过mod_status,能获取到实时服务器的性能和状态信息,如服务器的负载、工作进程数量、请求队列长度、空闲/间歇工作线程数、服务器CPU使用率等信息。mod_status属于Apache HTTP服务器的一个模块,提供页面显示服务器的当前状态。华纳云将在下文为大家分享关于启用和配置mod_status模块的具体操作方法。

需要先保证Apache服务器中已经安装好mod_status模块,默认情况下mod_status包含在Apache的标准模块中,需要手动进行启动。通过以下命令进行检查:

apachectl -M | grep status

命令的输出结果中如果包含status_module,则表示该模块已安装。

确认安装后就可以开始启用mod_status模块,在Debian/Ubuntu系统中:

sudo a2enmod status

sudo systemctl restart apache2

在 CentOS/RHEL 中,编辑Apache配置文件(通常位于/etc/httpd/conf/httpd.conf或/etc/httpd/conf.d/status.conf),确保加载了mod_status模块:

LoadModule status_module modules/mod_status.so

重启Apache:

sudo systemctl restart httpd

mod_status的配置,在 Debian/Ubuntu 系统中,可以编辑/etc/apache2/mods-available/status.conf文件。在 CentOS/RHEL 系统中,可以编辑/etc/httpd/conf/httpd.conf或创建一个新的配置文件/etc/httpd/conf.d/status.conf。示例:

<Location "/server-status">

SetHandler server-status

Require local

# 如果希望从特定的 IP 地址访问,可以使用:

# Require ip 192.168.1.0/24

</Location>

# 允许显示完整的服务器状态信息,包括请求的细节

ExtendedStatus On

·  其中,SetHandler server-status:指定/server-statusURL映射到mod_status处理程序;Require local:只允许从本地主机访问。如果需要从特定IP地址访问,可以更改为Require ip [IP地址]; ExtendedStatus On:启用详细状态信息。

更改完配置文件后,以应用配置重启Apache,在Debian/Ubuntu系统中:

sudo systemctl restart apache2

在 CentOS/RHEL 中:

sudo systemctl restart httpd

完成后,可以用浏览器来访问服务器的状态页面,如Apache服务器运行在localhost或者服务器的IP地址为192.168.2.22,通过以下命令访问:

http://localhost/server-status

http://192.168.2.22/server-status

配置正常会输出一个包含服务器状态的页面。为保证服务器的状态页面能被安全访问,可以通过Apache访问控制或者防火墙来限制访问。

在/var/www/html/server-status目录下创建一个.htaccess文件:

AuthType Basic

AuthName "Restricted Access"

AuthUserFile /etc/apache2/.htpasswd

Require valid-user

再创建一个.htpasswd文件添加用户:

sudo htpasswd -c /etc/apache2/.htpasswd username

防火墙限制访问可以通过iptables或者firewalled来限制访问:

sudo iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 80 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 80 -j DROP

或:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="80" accept'

sudo firewall-cmd --reload

为了安全考虑,最好只在内部网络或者收信任的环境中启用mod_status,因为mod_status页面暴露可能带来敏感信息泄露风险。根据防火墙的规则来允许访问/server-status URL;根据Apache服务器的版本和配置来适当调整文件路径和指令。

华纳云 推荐文章
Linux 终端中执行和撤销Reset 命令的方法 Ubuntu中用Docker安装Kali Linux工具 被评为2024年最佳的10个Linux服务器发行版 Linux中程序运行或游戏屏幕录制的方法 Linux中监控和调试磁盘性能的工具分享 centos7服务器如何搭建ftp? CentOS 8中yum和dnf有什么区别 CentOS、RHEL和Fedora 中安装 tar的具体操作 删除一个文件中全部硬链接的方法 VirtualBox的性能优化方法有哪些
客服咨询
7*24小时技术支持
技术支持
渠道支持