Изменение пути в обратном прокси NGINX - PullRequest
0 голосов
/ 18 июня 2020

У меня есть обратный прокси-сервер 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 и ничего не отображается.

Как я могу заставить это работать в производственной среде?

...