• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > Linux shell实现HTTP服务示例代码

Linux shell实现HTTP服务示例代码

作者:daisy 字体:[增加 减小] 来源:互联网

daisy 通过本文主要向大家介绍了linux shell代码,linux shell脚本,linux shell编程,linux shell脚本攻略,linux shell脚本实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、前言

使用代理服务器 HAProxy 对 Mysql 做负载均衡是常用方案,为提高可用性,当某个 Mysql 出现问题时,例如服务器故障了,或者数据复制中断了,最好可以让 HAProxy 马上知道,然后停止向其转发请求

HAProxy 如何知道 Mysql 是否有问题呢?

二、解决思路

(1)编写一个shell脚本,检查 mysql 的状态,然后输出结果,例如状态正常时,返回状态码200及正确信息,否则返回状态码503及错误信息

(2)实现一个HTTP服务,有请求连接后,调用上面的检查脚本,返回检查结果

(3)HAProxy 访问这个HTTP服务,根据返回的结果信息来判断这个 mysql 是否可用

如何方便快速的实现一个可以调用shell脚本的HTTP服务呢?

比较通用的方案就是 xinetd

xinetd 是 Linux 的守护进程,全称为 extended interent daemon,扩展的网络守护进程

xinetd 可以打开一个端口,等待连接,你可以告诉 xinetd 运行哪个脚本,当有连接进来后,xinetd 便会执行脚本,然后直接返回脚本输出的内容

HAProxy -> xinetd -> mysql-check脚本,HAProxy 便取得了mysql的状态信息

xinetd 的配置案例

下面实现一个简单的 xinetd 示例,开放 9200 端口,返回一个测试脚本的输出内容

如果机器上还没有 xinetd,先安装一下,centos7 下可以使用命令 yum install xinetd

(1)测试脚本

#!/bin/bash

echo `uptime | egrep -o 'up ([0-9]+) days' | awk '{print $2}'`
</div>

这个脚本用来输出当前服务器的在线天数

用 chmod +x 给脚本添加可执行权限

(2)编写 xinetd 服务

例如服务名为 helloworld,文件名 /etc/xinetd.d/helloworld,内容为

service helloworld

{

disable = no

port  = 9200

socket_type   = stream

protocol    = tcp

wait      = no

user      = root

server     = /root/test.sh

server_args   = test

}
</div>

port 指定监听的端口

server 指定要执行的脚本

(3)加入服务列表

修改 /etc/services

找到定义 9200 端口的位置,注释掉原有的,添加 helloworld 服务

helloworld   9200/tcp

#wap-wsp     9200/tcp

#wap-wsp     9200/udp
</div>

(4)重启 xinetd

centos 下的重启命令为:

systemctl restart xinetd.service
</div>

(5)测试

分别用 nc 和 telnet 两个命令测试一下

nc localhost 9200
</div>


telnet localhost 9200
</div>


可以正确输出脚本执行内容,完成示例

总结

Linux shell实现HTTP服务的内容到这就基本结束了,希望对大家的工作和学习能有所帮助,如果有疑问可以留言讨论。

</div>

您可能想查找下面的文章:

  • linux shell txt转换成html的实现代码
  • linux shell txt转换成html的实现代码
  • Linux shell实现HTTP服务示例代码
  • Linux Shell中判断进程是否存在的代码

相关文章

  • 提取oralce当天的alert log的shell脚本代码
  • linux shell脚本学习xargs命令使用详解
  • Shell脚本去重的几种方法实例
  • 实现core文件自动生成配置文件的方法
  • Shell脚本切割tomcat的日志文件
  • gearman队列持久化引发的问题及解决方法
  • 获取站点的各类响应时间(dns解析时间,响应时间,传输时间)
  • 如何调试Linux shell脚本
  • Shell实现系统时间和BIOS时间同步校准脚本分享
  • Shell编程之Shell变量学习总结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • linux删除大量文件的6种方法
    • 输出执行操作和打印日志的shell脚本实例
    • 执行Shell脚本的4种方法及区别介绍
    • Shell脚本定期清空大于1G的日志文件
    • iredmail下安装脚本分析(一)---get_all.sh 文件所在目录为PKGS
    • linux安装php扩展脚本分享
    • 实时查看系统流量的Shell脚本分享
    • 一键备份gitolite服务器的Shell脚本
    • 一个简单的linux命令 mkdir
    • Shell脚本实现非法IP登陆自动报警

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有