从 "directory" 反向代理到“服务器不工作

Reverse proxy from "directory" to "server not working

我有一个 docker-compose 文件,它创建了 3 个 apache 容器和一个 NGINX 容器。 Apache 容器是所有不同的应用程序,它们将拥有自己的 docker 容器。

我想使用 NGINX 将代理从根 nginx 容器 URL 的目录反向代理到 3 个 apache 实例的主要父级。

在 location/works 下面的配置中。 /parts 和 /wiki 没有。

我已经确认所有 3 个 apache 容器都可以通过交换 / 位置上的 proxy_pass 来工作,所以我知道问题出在 nginx 配置上。但是我是 nginx 的新手,我不确定如何解决这个问题。

worker_processes 1;

events { worker_connections 1024; }

http {

  sendfile on;

  upstream docker-apache-php {
      server ths_apache_php:80;
  }

  upstream docker-apache-php-two {
      server ths_apache_php_two:80;
  }

  upstream docker-apache-php-three {
      server ths_apache_php_three:80;
  }

  server {
    listen 8080;

    location / {
        proxy_pass         http://docker-apache-php;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }

    location /parts {
        proxy_pass         http://docker-apache-php-two;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }

    location /wiki {
        proxy_pass         http://docker-apache-php-three;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
  }
}

我解决了这个问题,显然 proxy_pass 上的 URL 需要以 / 结尾。这现在正在工作,因为我也需要它。

worker_processes 1;

events { worker_connections 1024; }

http {

  sendfile on;

  upstream docker-apache-php {
      server ths_apache_php:80;
  }

  upstream docker-apache-php-two {
      server ths_apache_php_two:80;
  }

  upstream docker-apache-php-three {
      server ths_apache_php_three:80;
  }

  server {
    listen 8080;

    location / {
        proxy_pass         http://docker-apache-php/;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }

    location /parts {
        proxy_pass         http://docker-apache-php-two/;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }

    location /wiki {
        proxy_pass         http://docker-apache-php-three/;
        proxy_redirect     off;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
    }
  }
}