【问题标题】:Reverse proxy from "directory" to "server not working从“目录”反向代理到“服务器不工作”
【发布时间】:2018-10-01 14:44:18
【问题描述】:

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

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

在下面的配置中位置/作品。 /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;
    }
  }
}

【问题讨论】:

    标签: docker nginx reverse-proxy


    【解决方案1】:

    我解决了这个问题,显然 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;
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2020-04-14
      • 2013-04-23
      • 2013-04-02
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2020-08-27
      • 2016-07-01
      相关资源
      最近更新 更多