我有一个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
,但未显示任何内容。
我怎样才能在生产中使用它?