You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lightsail容器升级Python3.11后健康检查出现SSL EOF错误

问题:Lightsail容器更新至Python3.11+Debian Bookworm后出现SSL.SSLEOFError错误

我最近将主Lightsail容器更新为使用Python3.11、venv和Debian Bookworm作为基础镜像。此前基于bullseye+Python3.10部署时未出现该问题。镜像在本地运行正常,偶尔AWS会忽略SSL错误允许部署,部署后容器也能正常工作,但会触发以下错误:

[12/Nov/2023:16:26:05] Error on request:
[12/Nov/2023:16:26:05] Traceback (most recent call last):
[12/Nov/2023:16:26:05] File "/opt/venv/lib/python3.11/site-packages/werkzeug/serving.py", line 362, in run_wsgi
[12/Nov/2023:16:26:05] execute(self.server.app)
[12/Nov/2023:16:26:05] File "/opt/venv/lib/python3.11/site-packages/werkzeug/serving.py", line 326, in execute
[12/Nov/2023:16:26:05] write(data)
[12/Nov/2023:16:26:05] File "/opt/venv/lib/python3.11/site-packages/werkzeug/serving.py", line 301, in write
[12/Nov/2023:16:26:05] self.wfile.write(data)
[12/Nov/2023:16:26:05] File "/usr/lib/python3.11/socketserver.py", line 834, in write
[12/Nov/2023:16:26:05] self._sock.sendall(b)
[12/Nov/2023:16:26:05] File "/usr/lib/python3.11/ssl.py", line 1241, in sendall
[12/Nov/2023:16:26:05] v = self.send(byte_view[count:])
[12/Nov/2023:16:26:05] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[12/Nov/2023:16:26:05] File "/usr/lib/python3.11/ssl.py", line 1210, in send
[12/Nov/2023:16:26:05] return self._sslobj.write(data)
[12/Nov/2023:16:26:05] ^^^^^^^^^^^^^^^^^^^^^^^^
[12/Nov/2023:16:26:05] ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2393)

我尝试过调整openssl配置及其他在Python3.10下有效的设置,但均无效。推测这可能是AWS健康检查处理SSL的方式导致的问题。

以下是我的Dockerfile核心内容:

FROM amd64/postgres

# RUN apt-get update python-deps and some other stuff

RUN mkdir -p /etc/apt/keyrings

ENV PYTHONUNBUFFERED 1

WORKDIR /app/

RUN python3 -m venv /opt/venv
# Enable venv
ENV PATH="/opt/venv/bin:$PATH"

COPY ./requirements.txt /app/requirements.txt
RUN  pip install --no-cache-dir --upgrade pip \
  && pip install --no-cache-dir -Ur requirements.txt

RUN chmod +x start_api.sh

以及start_api.sh的内容:

#!/bin/bash

set -Eeuo pipefail

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.redacted.com" \
    -keyout server.key  -out server.cert

FLASK_ENV=development
export FLASK_APP=backend
FLASK_APP=backend
flask run --host 0.0.0.0 --port 443 --cert=server.cert --key=server.key

我知道在生产环境中运行Flask自带服务器并不合适,但目前这只是我的测试环境。

内容的提问来源于stack exchange,提问作者Christopher Wrogg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:44:52