У меня есть обратный прокси-сервер Nginx, который я использую для обслуживания другого контейнера.
Вот мой docker-compose
файл:
version: "3.7"
services:
camunda_1:
build:
context: some_context
dockerfile: myDockerfile.Dockerfile
image: camunda_image
ports:
- "8080:8080"
networks:
my_network:
proxy:
build:
context: some_context
dockerfile: my_Dockerfile.Dockerfile
image: proxy_image
ports:
- "80:8080"
environment:
- CAMUNDA_PATH=/camunda
- CAMUNDA_HOST=http://camunda_1:8080
networks:
my_network:
depends_on:
- camunda_1
networks: my_network: А вот мой nginx config:
server {
listen 8080;
server_name localhost;
location <CAMUNDA_PATH>/ {
proxy_pass <CAMUNDA_HOST>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Я бы хотел изменить <CAMUNDA_PATH>
на что-нибудь другое. Однако Camunda ожидает, что его путь будет /camunda
для обслуживания приложения Tomcat. Я решил это с помощью следующей конфигурации:
location <CAMUNDA_PATH>/ {
rewrite ^<CAMUNDA_PATH>/$ /camunda permanent;
proxy_pass <CAMUNDA_HOST>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
Таким образом, когда я go - localhost/<CAMUNDA_PATH>/
, мой браузер переходит непосредственно к http://localhost:8080/camunda
и отображает приложение.
Однако это работает только локально, в производственной среде, когда я go на MY_IP/<CAMUNDA_PATH>/
меня перенаправляют на MY_IP:8080/camunda
и ничего не отображается.
Как я могу заставить это работать в производственной среде?