小弟有個環境如下圖架構,想為設計部門每個使用者建立專屬的環境,請教前輩們nginx是否可以做到.小弟環境是1.15.2
Console01-04 全部指向同一台nginx server 當使用者連線不同的dns name 則轉向不同IP的環境.
參閱這個:
https://shazi.info/centos-6-%E5%BB%BA%E7%AB%8B-nginx-reverse-proxy/
nginx的config改成:
server{
listen 80;
#Proxy的位置,提供給使用者連線
server_name 「Domain Name 01」;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
#後端的Web伺服器,以Nginx官網為例
proxy_pass 「server 01」;
#定義header記錄使用者IP
proxy_set_header X-Real-IP $remote_addr;
#讓後端的Web伺服器可以取得使用者真實IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#把 Protocol header 也往後送
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_max_temp_file_size 0;
}
}
這樣應該可以。
小弟有點困惑,因為client端並非走http protocol連線,而是使用putty或是遠端桌面連線,後端其實也不是web server我猜可能不會有這類的header.
以下是我的設定,我的結果是不論client連線哪個hostname 全都會連線到defalut,也就是console01的環境
如果把default敘述拿掉則無法連線,error log為"*1 no host in upstream"
stream {
map $ssl_preread_server_name $name {
console01 console01;
console02 console02;
console03 console03;
console04 console04;
default console01;
}
upstream console01 {
server 192.168.201.100:22;
}
upstream console02 {
server 192.168.201.101:22;
}
upstream console03 {
server 192.168.201.102:3389;
}
upstream console04 {
server 192.168.201.103:3389;
}
server {
listen my_externalIP:60003;
proxy_pass $name;
}
}
upstream 沒錯 , 也可導 UDP 呦 !!!
https://www.echochio.nctu.me/2016/11/nginx_proxy_keepalived/
我用這個還做過 AD 的 HA Proxy !!!
$cat /etc/nginx/nginx.conf
...
stream {
upstream pod3{
server 10.1.5.3:3306;
}
upstream pod4{
server 10.1.5.4:3306;
}
map $server_addr $x {
192.168.1.238 pod3;
192.168.1.239 pod4;
}
server {
listen 3306;
proxy_pass $x;
}
}
之前網路上 ... 找到之前設定
對 不同 mysql 給與不同的連結 ....
好像是前端那台 Server 要帶多 IP ...
設多 domain 好像有問題 ...忘了
我沒有機器試了 ...