Apache - 处理TCP连接,但不处理HTTP请求

Sco*_*ott 6 php apache tcp

我有一个GPS单元,可以通过TCP连接发送数据,但我没有能力修改它发送的消息,所以它会以HTTP请求的形式来到我的服务器 - 它只能发送一条消息以预定义的格式.

所以,我有以下问题:

1)Apache是​​否可以处理不是以HTTP请求形式出现的TCP连接,并且发送的消息是否由PHP脚本处理?

2)如果#1不可能,你会如何建议我处理发送到我服务器的数据?

我可能会有数百个(如果不是数千个)这些GPS单元向我的服务器发送数据,因此我需要一种有效的方法来处理所有连接(这就是为什么我希望Apache或其他一些有价值的服务器来处理TCP连接).我希望能够处理通过PHP连接发送的消息,因为这是我的应用程序的其余部分运行,我将需要插入发送到数据库的数据(并且PHP非常擅长这样做之类的事情).

如果它很重要,GPS单元可以通过UDP连接发送数据,但是从我读到的内容中,Apache不能与UDP连接一起工作.

欢迎大家提出意见.

web*_*ave 3

使用阿帕奇是不切实际的,因为它使用的是核弹,而鞭炮就足够了。在 xinetd 的帮助下,在 Linux 上创建 PHP 服务器非常简单。

调整/etc/services假设您希望服务在端口 56789 上运行。在 中/etc/services,添加以下行:

gpsservice   56789/tcp
Run Code Online (Sandbox Code Playgroud)

在 中/etc/xinet.d/,创建一个名为gpsservice

service gpsservice 
{
    socket_type             = stream
    protocol                = tcp
    wait                    = no
    user                    = yourusername
    server                  = /path/to/your/script
    log_on_success          = HOST PID
    disable                 = no
}
Run Code Online (Sandbox Code Playgroud)

创建 PHP 脚本(chmod 使其可执行):

#!/usr/bin/php
<?php
// do stuff
?>
Run Code Online (Sandbox Code Playgroud)

重新启动 xinetdservice xinetd restart

现在您已经有了一个用 PHP 编写的快速 TCP 服务器。