Добрый день!
Я хочу разобраться как деплоить свое web-приложение. Решил установить MongoDB и Mongo Express в докере. Так работает. Я хочу чтобы Mongo Express работала через proxy сервер, для этого я запустил nginx тоже в докере, прописал три сервиса в docker-compose.yml. Но заставить работать nginx пока не получается. Нашел несколько статей, например: эту и эту.
У меня простая задача: пробросить веб-сервер Mongo Express через nginx.
Вот мой docker-compose.yml:
version: '3'
services:
mongo:
image: mongo
container_name: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: mongouser
MONGO_INITDB_ROOT_PASSWORD: mongopass
ports:
- "27017:27017"
volumes:
- /home/silart/mongodb:/data/db
mongoexpress:
image: mongo-express
container_name: mongoexpress
ports:
- 8081:8081
environment:
ME_CONFIG_BASICAUTH_USERNAME: user
ME_CONFIG_BASICAUTH_PASSWORD: pass
ME_CONFIG_MONGODB_PORT: 27017
ME_CONFIG_MONGODB_ADMINUSERNAME: mongouser
ME_CONFIG_MONGODB_ADMINPASSWORD: mongopass
nginx:
image: nginx:latest
container_name: nginx
ports:
- 80:80
- 443:443
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- mongoexpress
links:
- mongoexpress
Файл nginx.conf:
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream docker-nginx {
server mongoexpress:8081;
}
server {
listen 8080;
location / {
proxy_pass http://docker-nginx;
proxy_redirect off;
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_set_header X-Forwarded-Host $server_name;
}
}
}
Если я обращаюсь к серверу так: http://localhost:8081, это работает, но запросы идут напрямую к mongoexpress (я пробрасываю порты: 8081:8081)
А если обращаться так: http://localhost:8080, то не работает.
Подскажите пожалуйста, что можно сделать.