Nginx вверх как сиротские контейнеры и не работает (ошибка 521) - PullRequest
0 голосов
/ 20 апреля 2020

Я использую контейнер Nginx с docker -композицией, но у него плохая конфигурация. Когда я связываю домен с портом 8000, у меня возникает ошибка 521.

enter image description here

Это мой Dockerfile:

 FROM nginx
 COPY nginx.conf /etc/nginx/nginx.conf

I Я использовал nginx -alpine, но он не работал без Alpine python, и мне пришлось изменить его, потому что Pandas не работает с Alpine.

Итак, мой nginx .conf:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
 worker_connections  1024;  ## Default: 1024, increase if you have lots of clients
}

http {
 include       /etc/nginx/mime.types;
 # fallback in case we can't determine a type
 default_type  application/octet-stream;

 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" "$http_x_forwarded_for"';

 access_log  /var/log/nginx/access.log  main;

 sendfile        on;
 #tcp_nopush     on;

 keepalive_timeout  65;

 upstream app {
    server django:5000;
 }

server {
# use 'listen 80 deferred;' for Linux
# use 'listen 80 accept_filter=httpready;' for FreeBSD
listen 5000;
charset utf-8;

# Handle noisy favicon.ico messages in nginx
 location = /favicon.ico {
    return 204;
    access_log     off;
    log_not_found  off;
}

 location / {
    # checks for static file, if not found proxy to app
    try_files $uri @proxy_to_app;
}

# django app
 location @proxy_to_app {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forward-Proto http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_temp_file_write_size 64k;
    proxy_connect_timeout 10080s;
    proxy_send_timeout 10080;
    proxy_read_timeout 10080;
    proxy_buffer_size 64k;
    proxy_buffers 16 32k;
    proxy_busy_buffers_size 64k;
    proxy_redirect off;
    proxy_request_buffering off;
    proxy_buffering off;
    proxy_pass http://app;
}
}
}

Когда я создаю и запускаю свое приложение, я не вижу ошибок, и я даю ему подсказку "docker -compose ps" появляются, как на фотографии, но через некоторое время они исчезают, и если я пытаюсь выполнить какое-либо действие с каким-либо контейнером, он отвечает:

ВНИМАНИЕ: Найдены потерянные контейнеры (core_nginx_1) для этого проекта. Если вы удалили или переименовали эту службу в своем файле compose, вы можете запустить эту команду с флагом --remove-orphans, чтобы очистить ее.

Я попытался создать .env с COMPOSE_PROJECT_NAME = CORE но все равно не работает.

Это мой production.yml:

nginx:
  build: ./compose/production/nginx
  image: core_production_nginx
  ports:
  - 80:80
  depends_on:
  - django

Я пытался добавить 80: 5000, но он выдает ошибку.

1 Ответ

1 голос
/ 21 апреля 2020

Когда ваш контейнер disappeared, это означает, что он опущен. Вы можете увидеть все контейнеры, вверх и вниз, с помощью команды docker ps -a. Вы найдете свой исчезнувший контейнер здесь

Когда вы используете команду docker ps, вы никогда не увидите никаких ошибок. Эта команда покажет вам только рабочие контейнеры. Если вы хотите увидеть ошибки внутри контейнера, вы должны использовать команду docker logs <container name>. А когда ваш контейнер disappeared, это означает, что он опущен. Вы можете увидеть все контейнеры, вверх и вниз, с помощью команды docker ps -a. Вы найдете свой исчезнувший контейнер здесь. Вам следует использовать docker logs, и вы увидите, почему этот контейнер отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...