Сервер Gunicorn не поддерживает постоянные соединения TLSPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сервер Gunicorn не поддерживает постоянные соединения TLS

Сообщение Anonymous »

Нам нужно написать сервер Python, который поддерживает постоянные соединения, чтобы при поступлении другого запроса он использовал старое соединение вместо создания нового соединения. Для этого мы использовали Flask и Gunicorn.
Код Python:

Код: Выделить всё

from flask import Flask, request, make_response, jsonify

app = Flask(__name__)

@app.route('/v1')
def get_availability():
response = make_response("Custom Response", 204)
return response

@app.route('/v2')
def get_ping():
response = make_response("Custom Response", 200)
return response

@app.errorhandler(404)
def not_found(error):
return jsonify({'error': 'Custom message for unavailable path'}), 404
И мы запускаем сервер Python, используя Gunicorn, как показано ниже

Код: Выделить всё

gunicorn --keyfile key.pem --certfile cert.pem --bind 127.0.0.1:8080 app:app
Я написал простой сценарий оболочки, который отправляет две команды завитка, как показано ниже.

Код: Выделить всё

curl -H "Connection: keep-alive" -H "Keep-Alive: timeout=5, max=100" https://127.0.0.1:8080/v1 -v -k
curl -H "Connection: keep-alive" -H "Keep-Alive: timeout=5, max=100" https://127.0.0.1:8080/v2 -v -k
Когда я запускаю сценарий оболочки, я получаю ответы, но соединения TLS закрываются после каждой команды завитка, а новая команда завитка не использует повторно соединение, как показано ниже

Код: Выделить всё

*   Trying 127.0.0.1:8080...
* Connected to 127.0.0.1 (127.0.0.1) port 8080
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / RSASSA-PSS
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
*  subject: C=XX; L=Default City; O=Default Company Ltd
*  start date: Jan  8 22:43:00 2025 GMT
*  expire date: Jan  8 22:43:00 2026 GMT
*  issuer: C=XX; L=Default City; O=Default Company Ltd
*  SSL certificate verify result: self-signed certificate (18), continuing anyway.
*   Certificate level 0: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/1.x
> GET /v1 HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/8.5.0
> Accept: */*
> Connection: keep-alive
> Keep-Alive: timeout=5, max=100
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 200 OK
< Server: gunicorn
< Date: Thu, 09 Jan 2025 18:09:21 GMT
< Connection: close
< Content-Type: text/html; charset=utf-8
< Content-Length: 15
<
* Closing connection
* TLSv1.3 (OUT), TLS alert, close notify (256):
Custom Response*   Trying 127.0.0.1:8080...
* Connected to 127.0.0.1 (127.0.0.1) port 8080
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / RSASSA-PSS
* ALPN: server did not agree on a protocol.  Uses default.
* Server certificate:
*  subject: C=XX; L=Default City; O=Default Company Ltd
*  start date: Jan  8 22:43:00 2025 GMT
*  expire date: Jan  8 22:43:00 2026 GMT
*  issuer: C=XX; L=Default City; O=Default Company Ltd
*  SSL certificate verify result: self-signed certificate (18), continuing anyway.
*   Certificate level 0: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/1.x
> GET /v1 HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/8.5.0
> Accept: */*
> Connection: keep-alive
> Keep-Alive: timeout=5, max=100
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 200 OK
< Server: gunicorn
< Date: Thu, 09 Jan 2025 18:09:21 GMT
< Connection: close
< Content-Type: text/html; charset=utf-8
< Content-Length: 15
<
* Closing connection
* TLSv1.3 (OUT), TLS alert, close notify (256):
Я думал, что Gunicorn поддерживает постоянные соединения, но он их закрывает. Может кто-нибудь, пожалуйста, дайте мне знать, есть ли способ поддерживать постоянные соединения TLS.

Подробнее здесь: https://stackoverflow.com/questions/793 ... onnections
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сервер Gunicorn не поддерживает постоянные соединения TLS
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Gunicorn не поддерживает постоянные соединения TLS
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Включите TLS 1.0, TLS 1.1, TLS 1.2... Asp.NET IIS 10.0.
    Anonymous » » в форуме C#
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous
  • Как сохранить постоянные значения в PHP и удалить все постоянные значения при закрытии вкладки
    Гость » » в форуме Php
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • Как сохранить постоянные значения в PHP и удалить все постоянные значения при закрытии вкладки
    Гость » » в форуме Html
    0 Ответы
    70 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»