我想设置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.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"在"服务器"。
如何为差异域请求编写配置文件以分发差异服务器? 如果您有想法或信息,可以教我吗?
答案 0 :(得分:1)
nginx无法实现,因为stream
模块是L3平衡器。 SSH协议适用于L5 / 7。
根本不可能,因为ssh协商不包括目标主机名。
您可以使用两个不同的IP或使用两个不同的端口执行您想要的操作。在这两种情况下,nginx都可以转发连接,但在这种情况下使用iptables
要好得多。