Как я могу управлять обратным прокси-сервером nginx с помощью своего приложения Java?

Я использую обратный прокси-сервер nginx с докером и хочу автоматизировать настройку nginx. Например, я хочу сообщить своему Java-приложению имя домена/сервера (например, myapp.example.com) и серверную систему. И мое Java-приложение должно указать nginx настроить это.

Возможно ли это или есть альтернативное программное обеспечение обратного прокси с такой функциональностью.


person Tom    schedule 06.10.2019    source источник


Ответы (1)


Один из способов добиться этого — использовать общий том, к которому могут получить доступ оба контейнера (контейнер java и контейнер nginx) и где находится файл конфигурации nginx. Это также будет работать, если java не находится в докере, тогда ему просто нужен доступ к сопоставленной папке.

Всякий раз, когда вы хотите обновить конфигурацию, просто перепишите ее, а затем запустите nginx для перезагрузки. Есть несколько способов добиться этого. Проще всего с помощью

docker exec nginx-container-name nginx -s reload

например через Java ProcessBuilder или потрясающий проект Java Docker https://github.com/docker-java/docker-java.

Примечание. Если вы запускаете java внутри контейнера докеров, вам необходимо сопоставить сокет докера внутри контейнера (например, используя -v /var/run/docker.sock:/var/run/docker.sock из оболочки).

person Julian    schedule 18.04.2020