Чтобы освоить 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 теперь добавляет перенаправление в корень, заданный @ /, но, очевидно, это не то, где контейнер
Как это предотвратить?