Трудно полностью описать нашу проблему. Тем не менее, я постараюсь предоставить полную информацию. Я провел много часов и все еще застрял. Надеюсь, что кто-нибудь здесь может мне помочь.
В настоящее время наш контейнер случайным образом зависает при ответе на сетевой запрос.
У меня есть приложение nodejs, работающее на порту 8082, этот порт также доступен для хост-машины. Я создал мостовую сеть, чтобы связать ее с прокси-контейнером nginx.
Я написал сценарий, чтобы сделать следующее
Иногда этот дизайн отлично работает. Однако иногда он ломается случайно. Разрыв происходит сразу после запуска контейнера, и как только он сломан, он нарушается для всех запросов.
Вот как это сломано
curl localhost:8082
, он возвращается Found. Redirecting to /en
. Это верно.curl localhost:8082/en
, долго виснет и возвращается curl: (52) Empty reply from server
.docker exec 041fe684edfb curl localhost:8082/en
(041fe684edfb - имя контейнера), он возвращает 99% ответа и зависает при печати <script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/admin-car-calendar~admin-host~admin-orders~admin-station~admin-stations~author-postView~holder-car-c~b1a1af4b.05ea0cbf23227e7a323a.js"></script>
, затем возвращается curl: (18) transfer closed with 1 bytes remaining to read
.docker exec -it 041fe684edfb bash
, затем запустите curl localhost:8082/en
в контейнерном терминале он печатает ответ, зависает, но в другой (последней) позиции <script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/runtime.93923d84c7f89f7844ae.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/admin-car-calendar~admin-host~admin-orders~admin-station~admin-stations~author-postView~holder-car-c~b1a1af4b.05ea0cbf23227e7a323a.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/admin-car-calendar~admin-car-orders~admin-cars~holder-car-calendar~holder-car-simple-calendar~holder~9dc2a71c.5714564e356df216ebb8.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/user-vs-home.dc7ac409e63e95c891ec.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/vendors.284ffc3f329d46200747.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/client.16b9bdc0c6df3c59afb6.js"></script>
<script defer src="https://d3l80sdjn9d1ye.cloudfront.net/bundles/styles.91c5d85ab779777de531.js"></script>
</body>
</html>
не распечатывается.
Когда я проверил журнал своего приложения nodejs, запрос полностью обработал запрос (пока </html>
).
Дальнейшая информация
docker restart 041fe684edfb
, проблема исчезнетContent-Length
заголовок правильно.
12:07:00
AbortError: Redis connection lost and command aborted. It might have been processed.
12:07:00
at RedisClient.flush_and_error (/carstay/node_modules/redis/index.js:362:23)
12:07:00
at RedisClient.connection_gone (/carstay/node_modules/redis/index.js:664:14)
12:07:00
at RedisClient.on_error (/carstay/node_modules/redis/index.js:410:10)
12:07:00
at Socket.<anonymous> (/carstay/node_modules/redis/index.js:279:14)
12:07:00
at Socket.emit (events.js:223:5)
12:07:00
at Socket.EventEmitter.emit (domain.js:475:20)
12:07:00
at emitErrorNT (internal/streams/destroy.js:92:8)
12:07:00
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
12:07:00
at processTicksAndRejections (internal/process/task_queues.js:81:21)
12:07:00
AbortError: Redis connection lost and command aborted. It might have been processed.
12:07:00
at RedisClient.flush_and_error (/carstay/node_modules/redis/index.js:362:23)
12:07:00
at RedisClient.connection_gone (/carstay/node_modules/redis/index.js:664:14)
12:07:00
at RedisClient.on_error (/carstay/node_modules/redis/index.js:410:10)
12:07:00
at Socket.<anonymous> (/carstay/node_modules/redis/index.js:279:14)
12:07:00
at Socket.emit (events.js:223:5)
12:07:00
at Socket.EventEmitter.emit (domain.js:475:20)
12:07:00
at emitErrorNT (internal/streams/destroy.js:92:8)
12:07:00
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
12:07:00
at processTicksAndRejections (internal/process/task_queues.js:81:21)