NGINX反向代理中的路径更改

时间:2020-06-18 07:51:28

标签: nginx production-environment nginx-reverse-proxy nginx-location nginx-config

我有一个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

网络: 我的网络: 这是我的Nginx配置:

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;
} 

这样,当我转到localhost/<CAMUNDA_PATH>/时,浏览器将直接转到http://localhost:8080/camunda并显示应用程序。

但是,这仅在本地有效,在生产环境中,当我转到MY_IP/<CAMUNDA_PATH>/时,我被重定向到MY_IP:8080/camunda,但未显示任何内容。

我怎样才能在生产中使用它?

0 个答案:

没有答案