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