Я потратил много времени, пытаясь заставить NGINX + Sinatra общаться на локальном хосте на моем Mac. Контейнер Docker для Sinatra, определенный с помощью файла Docker, может загружаться на localhost: 3000 без проблем. Контейнер NGINX (с пользовательским файлом default.conf) не может связываться с моим приложением. Файл docker-compose находится ниже:
version: '3'
services:
sinatra:
build: app/
ports:
- "3000:3000"
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./nginx/default.conf:/etc/nginx/default.conf
ports:
- "80:80"
- "443:443"
depends_on:
- sinatra
links:
- sinatra
В default.conf для nginx у меня есть следующее:
server {
listen 80 default_server;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://sinatra:3000;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Насколько я понимаю, директива 'link' позволит мне так обращаться к службе синатры. Тем не менее, это не работает. Мой общий ресурс с моим локальным mac, настроенным в Docker, позволит использовать файлы из всех этих источников, и я могу видеть их при выполнении в отдельных контейнерах. Есть идеи, почему это не сработает? Опять же, служба sinatra отвечает на localhost: 3000, так что это должно быть что-то с частью NGINX. Спасибо за любое направление.