Простой конфиг обратного прокси nginx не перенаправляет - PullRequest
0 голосов
/ 17 декабря 2018

Чтобы освоить nginx с помощью докера, у меня есть очень простой nginx.conf файл + docker-compose, в котором запущено 2 контейнера для 1 сервиса (сам сервис + дБ).
Что я хочу:
localhost -> показать статическую страницу
localhost/pics -> показать другую статическую страницу
localhost/wekan -> перенаправить на мой контейнер, который работает на порту 3001.
последняя часть (перенаправлениев докер-контейнер) не работает.Приложение доступно в разделе localhost:3001, tho.

Мой nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {
    server{
        listen 80;
        location / {
            root /home/user/serverTest/up1; #index.html is here
        }
        location /wekan {               
            proxy_pass http://localhost:3001;
          rewrite ^/wekan(.*)$ $1 break; # this didnt help either 
        }
        location /pics {
            proxy_pass http://localhost/example.jpg;
        }
        location ~ \.(gif|jpg|png)$ {
            root /home/user/serverTest/data/images;
        }
    }

docker-compose.yml:

version: '2'


services:

  wekandb:
    image: mongo:3.2.21
    container_name: wekan-db
    restart: always
    command: mongod --smallfiles --oplogSize 128
    networks:
      - wekan-tier
    expose:
      - 27017
    volumes:
      - /home/user/wekan/wekan-db:/data/db
      - /home/user/wekan/wekan-db-dump:/dump

  wekan:
    image: quay.io/wekan/wekan
    container_name: wekan-app
    restart: always
    networks:
      - wekan-tier
    ports:
      # Docker outsideport:insideport
      - 127.0.0.1:3001:8080
    environment:
      - MONGO_URL=mongodb://wekandb:27017/wekan
      - ROOT_URL=http://localhost

ПросмотрЖурналы ошибок nginx, я получаю это:

2018/12/17 11:57:16 [error] 9060#9060: *124 open() "/home/user/serverTest/up1/31fb090e9e6464a4d62d3588afc742d2e11dc1f6.js" failed   (2: No such file or directory),  
client: 127.0.0.1,   server: ,   
request: "GET /31fb090e9e6464a4d62d3588afc742d2e11dc1f6.js?meteor_js_resource=true HTTP/1.1",   host: "localhost",   
referrer: "http://localhost/wekan"

Так что я думаю, что это имеет смысл, потому что в моем понимании nginx теперь добавляет перенаправление в корень, заданный @ /, но, очевидно, это не то, где контейнер
Как это предотвратить?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

проблема была в конфигурации docker-compose.Для тех, кто интересуется, все, что вам нужно, это пропуск прокси addr:port или addr:port/, тогда как второй вариант делает то же самое, что и часть перезаписи, так что это можно пропустить.
Кроме того, мне пришлось добавить / wekanв ROOT_URL внутри моего docker-compose

0 голосов
/ 17 декабря 2018

Ваш nginx не может получить доступ к локальному сетевому интерфейсу вашего состава докера.

Попробуйте связать порт wekan следующим образом:

wekan:
    ports:
    - 127.0.0.1:3001:8080

Mind the 127.0.0.1

См. https://docs.docker.com/compose/compose-file/#ports

...