如何设置nginx设置以从指向不同域的请求分发不同的服务器?

时间:2017-01-19 14:14:40

标签: nginx

我想设置nginx从请求指向dirrerent域分发不同的服务器。 nginx服务器环境如下。

CentOS Linux版本7.3.1611(核心版) nginx 1.11.8  * in with with withwith-stream参数。建设和从源代码安装。

我的形象是。

  server1.testdomain.com ssh request ->(global IP) *nginx server -> (local IP)192.168.1.101 server
  server2.testdomain.com ssh request ->(global IP) *nginx server -> (local IP)192.168.1.102 server
  • nginx服务器是相同的glocal IP和相同的服务器。

nginx.conf是......

stream {
        error_log /usr/local/nginx/logs/stream.log info;

        upstream server1 {
                server 192.168.1.101:22;
        }

        upstream server2 {
                server 192.168.1.102:22;
        }

        server {
                listen 22 server1.testdomain.com;
                proxy_pass server1;
        }

        server {
                listen 22 server2.testdomain.com;
                proxy_pass server2;
        }
}

但是... nginx:[emerg]无效" server1.testdomain.com"参数·· 发生了错误。似乎无法执行诸如listen" 22 server1.testdomain.com"。

和, 我试着写" server_name"在"服务器"。 nginx:[emerg]" server_name"这里不允许使用指令··· 不允许使用" server_name"在"服务器"。

如何为差异域请求编写配置文件以分发差异服务器? 如果您有想法或信息,可以教我吗?

1 个答案:

答案 0 :(得分:1)

nginx无法实现,因为stream模块是L3平衡器。 SSH协议适用于L5 / 7。

根本不可能,因为ssh协商不包括目标主机名。

您可以使用两个不同的IP或使用两个不同的端口执行您想要的操作。在这两种情况下,nginx都可以转发连接,但在这种情况下使用iptables要好得多。