nginx反向代理多个主机配置文件,而不是一个大文件

问题描述 投票:0回答:2

link to issue我还有一个问题。是否有可能使我像上面那样对每个系统进行反向代理,在启用了模块的文件夹中都有单独的conf文件。我试过了,但是,nginx一直在说,流指令是重复的。也许我可以将一个流模块指向各种服务器conf,但是我不知道该怎么做。

有人可以帮忙吗?

Rgds

海达尔

nginx stream reverse-proxy
2个回答
0
投票

我刚刚发布了一些示例,介绍了如何分割配置文件:https://github.com/xware-gmbh/nginx-config

让我知道到目前为止是否有帮助,并且是否可以自我解释。如有任何问题,我会在这里提供帮助。

这里要点是include /etc/nginx/conf.d/*.conf;文件末尾的nginx.conf行,告诉nginx确实从*.conf目录中获取所有/etc/nginx/conf.d/文件并为其构建一个大配置文件。然后,当nginx与nginx -T一起运行时,您可以检查结果,显示所有已加载的配置组合。


0
投票
  • 此配置已经可以正常运行了,很好

  • RP只是“转储”将端口80和443上的所有请求转发到服务器(上游)]

  • RP不会解密/加密所有SSL流量。只是直通

  • 对于这种情况,我使用了“ stream”和“ ssl_preread_server_name”指令,这很好用。

  • 所有服务器都配置在一个文件中,文件看起来像是(passthrough.conf):

 map $ssl_preread_server_name:$server_port $upstream {
 tempserver01.domain.com:5480 tempserver01_vapp_5480;
 tempserver01.domain.com:443 tempserver01_backend_443;
 tempserver02.domain.com:443 tempserver02_backend_443;
}

server {
 listen 443;
 proxy_pass $upstream;
 ssl_preread on;
}

server {
listen 5480;
proxy_pass $upstream;
ssl_preread on;
}

upstream tempserver01_vapp_5480 {
server realserver01.domain.com:5480;
}

upstream tempserver01_backend_443 {
server realserver01.domain.com:443;
}

upstream tempserver02_backend_443 {
server realserver02.domain.com:443;
}
  • 以上配置作为passthrough.con放置在单独的文件夹中

  • / etc / nginx / stream / enabled /

    • nginx.conf中指向的流指令ist如下所示:]

      stream {
      
      include /etc/nginx/stream/enabled/*.conf;
      
      }
      

    问题:

    我的主要目标是分割passthrough.conf文件并为每台服务器配置。为什么?因为有了这种配置,我可以轻松地在/ etc / nginx / stream / enabled文件夹中找到我的服务器,而不是在整个文件中搜索服务器。

    到目前为止,我实际上是在服务器服务器中进行拆分,但是nginx -t告诉我,端口443是重复的。当我将所有服务器打包到一个文件中时,不会发生任何问题。

    拆分的直通文件看起来像这样

    对于realserver01

    map $ssl_preread_server_name:$server_port $upstream {
      tempserver01.domain.com:5480 tempserver01_vapp_5480;
      tempserver01.domain.com:443 tempserver01_backend_443;
    }
    
    server {
      listen 443;
      proxy_pass $upstream;
      ssl_preread on;
    }
    
    server {
      listen 5480;
      proxy_pass $upstream;
      ssl_preread on;
    }
    
    upstream tempserver01_vapp_5480 {
      server realserver01.domain.com:5480;
    }
    
    upstream tempserver01_backend_443 {
      server realserver01.domain.com:443;
    }
    

    对于realserver02:

     map $ssl_preread_server_name:$server_port $upstream {
      tempserver02.domain.com:443 tempserver02_backend_443;
    }
    
    server {
      listen 443;
      proxy_pass $upstream;
      ssl_preread on;
    }
    
    upstream tempserver02_backend_443 {
      server realserver02.domain.com:443;
    }
    

    那么拆分的配置文件怎么了?

    提前感谢

    海达尔

    © www.soinside.com 2019 - 2024. All rights reserved.