我想監聽一個埠,并將其與反向代理的增量值(10000)系結。
在例子中,我想監聽并將其系結到這個值:
example.com:20000 -> http://0.0.0.0:30000
example.com:20010 -> http://0.0.0.0:30010
example.com:20200 -> http://0.0.0.0:30200
我的 nxing conf:
server {
listen 20000-20200;
server_name example.com;
location / {
proxy_pass http://0.0.0.0:$server_port; ## << 我想把這個埠增加到10000
}
}
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
哇,我不知道nginx允許監聽埠范圍。我在檔案中沒有找到它,但當我自己檢查時,它確實在按預期作業。
好吧,回到問題上來。如果沒有額外的模塊,nginx就沒有任何內置的數學。然而,由于你需要的只是一個數字的替換,你可以通過regex捕獲組和字串的連接來實作:
map $server_port $proxy_port {
"~d(d{4})" 3$1;
}
服務器 {
listen 20000-20200;
server_name example.com;
location / {
proxy_pass http://0.0.0.0:$proxy_port;
}
}
如果你使用OpenResty(或者用lua-nginx-module),你可以在nginx配置中使用帶有LUA代碼的真實數學:
server {
listen 20000-20200;
server_name example.com;
location / {
set_by_lua_block $proxy_port { return ngx.var.server_port 10000 }
proxy_pass http://0.0.0.0:$proxy_port。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328689.html
標籤:
