PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Linux
[问题] Nginx的map,好像只抓到default?关于同一个port分流
楼主:
HerryL
(Hollander)
2023-12-18 10:59:16
各位大大好,
我需要做一个:“同一port分流至ssh server与http server”的事,
找了一下资料,使用nginx加上map来试验,
我的nginx设定档如下:
stream {
upstream server_ssh {
server my_host:22;
}
upstream server_http {
server my_host:7006;
}
map $remote_port $pass_server {
22 server_ssh;
default server_http;
}
server {
listen 8888;
proxy_pass $pass_server;
}
server {
listen 8822;
proxy_pass server_ssh;
}
server {
listen 8806;
proxy_pass server_http;
}
}
接下来我测了些CASE,
CASE 1:ssh user@my_host -p 8822
这样是成功的,
CASE2:curl http://my_host:8806
这样也是成功的,
以上看起来我的proxy_pass写法是OK的,接着,
CASE 3:ssh user@my_host -p 8888
这样是失败的,而且,我可以在httpd上看到访问失败记录
CASE 4:curl http://my_host:8888
这样是成功的,
看起来,map的判断功能不见了,一律使用default?
还是其实我拿了一个错的变量来判断,所以永远不会是22,只好map到default,
如果是这样那请问,我该用什么变量判断呢?
作者:
rickieyang
(Rickie Yang)
2023-12-18 12:57:00
$remote_port 不会是 22 吧.直觉会先试试 $uri, 有就 http, 没有就 ssh
作者:
enthos
(影斯作业系统)
2023-12-18 17:50:00
https://github.com/yrutschle/sslh
楼主:
HerryL
(Hollander)
2023-12-19 05:50:00
stream模组地下,无法使用$uri变量...:(我来看看sslh,谢谢:)错字,改成:“模组底下”
作者: Reylod (Reylod)
2022-01-16 19:15:00
你要由8888 port分流ash 跟https的话$remote_port都会是8888,你要用$ssl_preread_protocol来判断,参考https://serverfault.com/a/1081363
继续阅读
[问题] Nginx header问题
raynoz
[问题] 备份后无法开机
Arabella
[问题] clonezilla 还原光盘的问题
zhucc
Re: [分享] fcitx5+rime+lua扩充版呒虾米 安装
kensou0012
PID1 systemd没有回收子程序问题
momo81
[分享] 台北上课的Linux课程
wild0921
[问题] 一般 user 用 PKCS#11 方式远端登入 SSH Server
xname
[问题] normal.mod not found
strwang
[问题] iPad 连不上 Ubuntu as hotspot
in09
Fw: [分享] 台南市东区胜利国小 Linux 系列免费课程
EijiHoba
Links
booklink
Contact Us: admin [ a t ] ucptt.com