503 ответа с помощью jwilder / nginx-proxy из установщика docker-compose nginx - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть сервер, который запускает ssl (certbot) nginx и направляет весь трафик на порт 5555, где работает мой nginx-прокси.Я пытаюсь заставить его направить весь мой трафик к соответствующим службам.

Вот мои настройки docker-compose:

nginx-proxy:
    container_name: nginx-proxy
    image: jwilder/nginx-proxy
    ports:
      - '5555:80'
    networks:
      app_net:
        ipv4_address: 172.26.111.111 (from subnet 0/24)  
    environment:
      - VIRTUAL_PORT=5555 
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./nginx/prod/proxy.conf:/etc/nginx/conf.d/proxy.conf:ro
text-rewriter-service:
    container_name: text-rewriter-service
    build: 
      context: ./text-rewriter-service
    ports:
      - '8001:8001'
    networks:
      app_net:
        ipv4_address: 172.26.111.13
    environment:
      - APP_ENV=prod
      - NODE_ENV=production
      - PORT=8001

И мой файл nginx proxy.conf

server {
    server_name localhost;
    listen 80;
    access_log /var/log/nginx/access.log;

  listen [::]:80;

  # text-rewriter-service
  location ~* ^/graphql(/?)(.*)$ {
    set $query $2;
    proxy_pass http://172.26.111.13:8001$1$query$is_args$args;
  }
}

nginx conf на сервере

server {
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name example.com www.example.com;

    location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://0.0.0.0:5555;
    }
    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Я пробовал (и не смог):

  1. IP с text-rewriter-service:8001

  2. попытался изменить сервер на example.com

  3. попытался использовать VIRTUAL_HOST и VIRTUAL_PORT в приложении

  4. попытался удалить VIRTUAL_PORT из среды nginx

здесь вывод nginx www.example.com 172.26.111.1 - - [08/Dec/2018:01:18:19 +0000] "GET /graphql HTTP/1.0" 503 615 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

возможное решение, я не совсем понял, как приступить к работе : https://github.com/jwilder/nginx-proxy/issues/582

Я думаю, что это на сервере nginx proxy_header мне нужно изменить ??

...