Решил остановиться на варианте с jwilder/nginx-proxy
Шаги довольно просты, но я почему-то очень долго не мог дойти до конца:
1. Отдельный контейнер для jwilder/nginx-proxy
1.1. Выделяем ему определенную сеть:
...
networks:
- nginx_proxy_network
networks:
nginx_proxy_network:
external: false
name: nginx_proxy_network
2. Во втором контейнере (гду крутится Django, Postgres, Gunicorn, Nginx) для сервиса nginx добавляем:
...
environment:
- VIRTUAL_HOST=example.com
2.1. Соединяем их в одну сеть:
networks:
default:
external:
name: nginx_proxy_network
2.2. Не забываем в настройках джанго указать новый хост в список разрешенных
2.3. Для Nginx вообще можно убрать внешние и внутренние порты
Дальнейшие настройки по желанию
Большое спасибо
Alexey Dmitriev и
Сергей Соколов за подсказки. Частично о них я уже знал, но они лишний раз напомнили о них и теперь все получилось