wsgi 错误:地址已在使用中 - socketio/django/apache2

2023-12-28

我的项目是使用 React (create-react-app)、React router (无 webpack)、Django (rest) 和后端带有 eventlet 的 Socketio 创建的。
我在使用 apache2 进行部署时遇到了 3 个问题 -开发过程中一切顺利:

创建了 2 个conf 文件,一个用于前端端口 80,一个用于后端端口 8000 - 它们分别工作得相对良好。

我在部署时遇到的问题:

  • Socket.io
    gives
[wsgi:error] 
eventlet.wsgi.server(eventlet.listen(("", 8000)), application, log_output=False)
sock.bind(addr)
Address already in use
  • 检查了哪些端口使用了 --> 仅 apache2 并且它与任何其他端口给出了相同的结果
  • 尝试为端口 5000 的套接字创建一个单独的conf文件(更改 wsgi eventlet 行中的端口),结果相同
    socketFile.conf:
Listen 5000
<VirtualHost *:5000>
    ServerName www.example.com
    ServerAlias example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /home/path/to/main/folder>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>
WSGIDaemonProcess exampleSocket python-home=/home/path/to/venv python-path=/home/path/to/main/folder
WSGIProcessGroup exampleSocket
WSGIScriptAlias / /path/to/wsgi.py
</VirtualHost>
  • 下一行默认使用 eventlet 完成(reuse_addr=True,reuse_port=None)sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

socketio_app/views.py

async_mode = None

import os
import socketio

basedir = os.path.dirname(os.path.realpath(__file__))
sio = socketio.Server(
    async_mode=async_mode, 
    logger=False, 
    cors_allowed_origins='http://localhost:3000'
)
thread = None
...

wsgi.py

import os
from django.core.wsgi import get_wsgi_application
from socketio_app.views import sio
import socketio
import eventlet
import eventlet.wsgi

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")

application = get_wsgi_application()

application = socketio.WSGIApp(sio, application)

eventlet.wsgi.server(eventlet.listen(("", 8000)), application, log_output=False)

最根本的错误是您尝试将两个进程绑定到同一个 ip 地址的一个 tcp 端口上,这是不可能的。 “地址已在使用中”是当您启动另一个打算使用已在侦听的套接字的程序时收到的错误消息。

使用此命令查明端口 5000 是否已在使用中:

ss -tln|grep 5000

我希望 Apache 侦听端口 80 (http) 并侦听端口 5000 上的 REST API。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wsgi 错误:地址已在使用中 - socketio/django/apache2 的相关文章

随机推荐

  • 禁止用户订阅 Firebase 主题

    如何消除应用程序用户拨打电话的机会FirebaseMessaging subscribeToTopic String 为了仅在服务器端处理主题管理 Firebase 云消息传递主题是公开的 无法阻止特定用户订阅它们
  • ERRO[0043] 拨打 gRPC 失败:无法升级到 h2c,收到 501

    当我尝试使用以下命令构建 Dockerfile 时docker build t myimage1 今天我收到这个错误 ERRO 0043 failed to dial gRPC unable to upgrade to h2c receiv
  • 用lark语法识别多行部分

    我正在尝试编写一个简单的语法来解析具有多行部分的文本 我不知道该怎么做 这是我到目前为止写的语法 如果有任何帮助 我们将不胜感激 ps 我意识到 lark 对于这个问题来说太过分了 但这只是我试图解析的一个非常简化的版本 from unit
  • 调试多线程应用程序[重复]

    这个问题在这里已经有答案了 我有一个用 C 和 MFC 编写的应用程序 它在 Windows 上运行多线程 有时我确实会收到一些抱怨 例如由于这些线程而导致的死锁或未处理的异常 通常我使用 Visual Studio 如果问题可重现 或使用
  • 恢复 git merge 冲突标志

    我正在尝试找出一种与团队其他成员共享合并冲突的方法 我们有一些非常大的分支 合并它们会产生很多冲突 我尝试了几种不同的方法 我当前的尝试包括将处于冲突状态的文件推送到远程存储库 将合并标记留在文件中 然后运行一个烦人的长别名来 grep 通
  • SciPy Optimizer 给出不满足约束的结果

    我正在使用 scipy optimize minimize 来解决问题 但包给出的结果违反了约束 这种情况非常简单 只给出一个目标函数和一个约束 这是代码 import math import numpy as np import scip
  • 将所有 QLineEdits 设置为只读

    我试图将我的所有 QLineEdits 大约有 150 个 设置为只读 有没有办法在不单独检查和设置每个 QLineEdits 的情况下执行此操作 我希望我能做类似的事情QLineEdit setReadOnly true 在我的构造函数中
  • 用于查找无效电子邮件地址的 SQL 脚本

    数据导入是从 Access 数据库完成的 并且没有对电子邮件地址字段进行验证 有没有人有一个可以返回无效电子邮件地址列表 缺少 等 的sql脚本 SELECT FROM people WHERE email NOT LIKE 任何更复杂的事
  • Logstash 可以同时处理多个输出吗?

    我对 Logstash 和弹性搜索很陌生 我正在尝试将日志文件存储在elasticsearch 和平面文件中 我知道logstash 支持这两种输出 但它们是同时处理的吗 还是通过工作定期完成 是的 您可以通过使用托运人配置上的 add t
  • 为什么 Java 和 C# 中嵌套类的行为不同?

    我不明白为什么Java中出现以下代码错误 public abstract class TestClass private final int data protected TestClass int data this data data
  • 对于 read_csv 和数据值 NA 来说,这是正确的行为吗?

    我已经开了一个issue https github com pydata pandas issues 10647在 GitHub 以下行为对我来说似乎不正确 似乎如果默认为read csv is na values False那么包括 NA
  • 如何在 Javascript 中通过 标签分割字符串

    我有一个 data text 字符串 它返回如下值 span Name span Message Javascript 是否可以将这个值分成两个 以便我可以在两个不同的变量中获取 名称 和 消息 I tried var str data t
  • JVM进程大小和内存堆大小之间的巨大差异

    我正在 Windows 8 1 64 位 4GB RAM 上开发 java swing 应用程序JDK 版本 8u20 64 位 问题是当我启动应用程序时Netbeans 分析器带监视器选项 当第一个 Jframe 加载时 应用程序内存堆就
  • Neo4j 将数据存储在哪里?

    我是 Neo4j 的新手 正在 Ubuntu 上进行一些测试 我想知道 Neo4j 将数据存储在哪里 他们将创建的节点和关系存储在哪里 这应该有帮助 dpkg L neo4j config etc neo4j neo4j propertie
  • 分割空格避免双引号 JS 字符串:从 'a "b \\" c" d ' 到 ['a','"b \\" c"','d']

    我目前正在为自定义文件格式构建一个小型文本编辑器 我有一个 GUI 但我还实现了一个小型输出控制台 我想要实现的是添加一个非常基本的输入字段来执行一些命令并传递参数 命令如下所示 compile test json output bin l
  • python pandas根据其他列中的条件进行新列分类

    使用以下 python pandas dataframe df df pd DataFrame transaction id A123 A123 B345 B345 C567 C567 D678 D678 product id 255472
  • 如何使 Identity Core 生成的访问令牌失效?

    我在 Net5 应用程序上实现了 Identity Core 以处理 4 个端点的登录 注销 注册和刷新 当我调用注销端点并发送刷新令牌时 它会从数据库中删除刷新令牌 以便用户无法刷新访问令牌 问题是我仍然可以使用访问令牌来调用应用程序的端
  • Android PDF 查看器库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道这个问题已经被问过很多次了 但我仍然不清楚是否有一个现有的且正常工作的库可以本地显示 PDF 文
  • Pod 库未正确安装

    我有一个带有 proj 结构的项目 XyzAbc LICENSE XyzAbc XyzAbc h Info plist file1 swift file2 swift Products XyzAbc framework 构建这个项目后我选择
  • wsgi 错误:地址已在使用中 - socketio/django/apache2

    我的项目是使用 React create react app React router 无 webpack Django rest 和后端带有 eventlet 的 Socketio 创建的 我在使用 apache2 进行部署时遇到了 3