gpt4 book ai didi

php - 在没有http的情况下从同一服务器上的php向ngnix发送信息

转载 作者:可可西里 更新时间:2023-11-01 12:18:25 24 4
gpt4 key购买 nike

我们正在开发一个实时应用程序,我们正在使用 nginx 推送流模块作为 websockets 部分。首先,数据从客户端发送到 php 脚本,该脚本执行一些身份验证并将所需信息存储在数据库中,然后将信息推送到 nginx,后者随后将其发送到特定套接字上的订阅用户。经常会出现从该脚本向本地 nginx 发出超过 30 个 http 请求的情况(我不确定这是一件坏事吗?)。

问题
是否可以在没有http请求的情况下将信息从php发送到nginx?我的 php 脚本有什么方法可以与 nginx 通信吗?处理此类通信的最佳做法是什么?每个 php 脚本发送 30 多个 http 请求是一个好习惯吗?

我已经阅读了一些 AMQP 解决方案,但没有找到 nginx 是来自 rabbitmq 消息的消费者的信息。

如果有任何不清楚的地方,我很乐意提供任何其他信息。

最佳答案

我假设如下:

当前工作流程:

  1. 用户从命令行运行 php 脚本,它使用 http 请求与 Nginx 中的服务器端脚本/cgi 设置通信
  2. Nginx 中的服务器端脚本/cgi 将接收传入的数据,对其进行处理并将其放入数据库,或发送给最终用户

OP 问题:

命令行 php 脚本与使用 http 协议(protocol)的 Nginx 服务器端脚本通信的效率,当通信发生在同一服务器内时,这可能有点过头了。

提案 1

  1. 命令行 php 脚本会将所有信息写入文件,然后向 Nginx 服务器端 cgi 脚本发送一个 http 请求
  2. Nginx 服务器 cgi 脚本,在收到请求后,将获取所有来自文件的信息,然后对其进行处理
  3. ramfs(ram 磁盘)可用于最小化物理 HD 的 I/O

提案2

将您的命令行 php 脚本合并到 Nginx 服务器端脚本中,并为其创建一个 Web 界面。当前命令行用户将登录网页以控制他们过去使用命令行工具执行此操作的过程。

优点:不再需要脚本间/进程间通信。整个工作流程在一个过程中。这在未来也可能更具可扩展性,因为多个用户可以通过 Web 界面登录并远程处理该过程。此外,它们不需要操作系统级别的帐户。

缺点:可能需要更多的开发时间。 (但您只需维护一个代码库,而不是两个。)

关于php - 在没有http的情况下从同一服务器上的php向ngnix发送信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29584618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com