Nginx 反向 proxy 設定

Nginx Unit

近來用proxmox安裝了數台lxc,只有其中一台有固定ip(Hinet pppoe),其他數台就設定為private ip,藏在內網中。因此在public中的 nginx server 就得負擔 reverse proxy 的功能 。而這對nginx來說卻是最簡單不過了,我以sshd與httpd 為例來說明設定方法 ,至於負載平衡部分就不先說明。

1.sshd 這得要先設好,才能從遠端進入管理server ...
用 nano 在 /etc/nginx/nginx.conf 加入

stream {
include /etc/nginx/ssh_enabled/*;
}

首先新增兩個目錄
mkdir /etc/nginx/ssh_available (這個是用來放設定檔的)
mkdir /etc/nginx/ssh_enabled (這個是nginx會讀取的目錄)
然後用 symblic link 將設好的設定檔連過去即可,不用時將 link remove 就好了

然後 在 etc/nginx/ssh_available 中新增 ssh.reproxy.conf

upstream inner-server1 {
server 192.168.1.11:22; # 內網中server1 ip 與 sshd port
}
server {
listen 1122; # 在 public ip中開啟的 port - forward 到 server 1
proxy_pass inner-server1;
}
upstream inner-server2 {
server 192.168.1.12:22; # 內網中server2 ip 與 sshd port
}
server {
listen 1222; # 在 public ip中開啟的 port - forward 到 server 2
proxy_pass inner-server2;
}
存檔, 用 symblic link 將在 ssh_available 中的設定檔連到 ssh_enabled中
ln -s /etc/nginx/ssh_available/* /etc/nginx/ssh_enabled
reload nginx... systemctl reload nginx

2. httpd

新增 virrtual_server (設定方法如同 https://mirai.tw/2019/12/08/install-lemp-on-vps-of-linode-vultr-or-couldcone/ )
server{
listen 80;
server_name yourserver_name;
location / { 
# forward的 Web Server
proxy_pass http://yourserver_ip;
# header 變數
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_max_temp_file_size 0;
}
}


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *