在linux中,端口轉送是指用Nginx監聽端口,當有HTTP請求到來時,將HTTP請求的HOST等信息與其配置文件進行匹配並轉發給對應的應用;端口轉送可以用於不加埠就造訪網域名稱。
本教學操作環境:linux7.3系統、Dell G3電腦。
什麼是連接埠轉送
當我們在伺服器上建置一個資料以及一個下載的應用程式,其中資料應用程式啟動了 8001 端口,下載應用程式啟動了 8002 連接埠。此時如果我們可以透過
localhost:8001 //资料 localhost:8002 //下载
但我們一般存取應用程式的時候都是希望不加埠就存取域名,也也就是兩個應用程式都透過 80 埠存取。但我們知道伺服器上的一個連接埠只能被一個程式使用,這時候該如何怎麼做呢?一個常用的方法是用 Nginx 進行連接埠轉送。 Nginx 的實作原則是:用 Nginx 監聽 80 埠,當有 HTTP 請求到來時,將 HTTP 請求的 HOST 等資訊與其設定檔配對並轉送對應的應用程式。例如當使用者造訪 linux.linuxmi.com 時,Nginx 從設定檔知道這個是資料應用程式的 HTTP 請求,於是將此請求轉送至 8001 連接埠的應用程式處理。當使用者造訪 m.linuxmi.com 時,Nginx 從設定檔知道這個是下載應用程式的 HTTP 請求,於是將此請求轉送至 8002 連接埠的應用程式處理。一個簡單的 Nginx 設定檔(部分)如下面所示:
#配置负载均衡池 #Demo1负载均衡池 upstream linux_pool{undefined server 127.0.0.1:8001; } #Demo2负载均衡池 upstream m_pool{undefined server 127.0.0.1:8002; } #Demo1端口转发 server {undefined listen 80; server_name linux.linuxidc.com; access_log logs/linux.log; error_log logs/linux.error; #将所有请求转发给demo_pool池的应用处理 location / {undefined proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://linux_pool; } } #Demo2端口转发 server {undefined listen 80; server_name m.linuxidc.com; access_log logs/m.log; error_log logs/m.error; #将所有请求转发给demo_pool池的应用处理 location / {undefined proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://m_pool; } }
上面這段設定實現了:
1、當使用者造訪的網域是:http://linux.linuxidc .com 時,我們自動將其請求轉送至連接埠號碼為 8001 的 Tomcat 應用處理。
2、當使用者造訪的網域是:http://m.linuxidc.com 時,我們會自動將其要求轉送至連接埠號碼為 8002 的 Tomcat 應用處理。
上面的這種技術實作就是連接埠轉送。連接埠轉送指的是由軟體統一監聽某個網域上的某個連接埠(一般是80埠),當存取伺服器的網域名稱和連接埠符合要求時,就依照設定轉送給指定的 Tomcat 伺服器處理。我們常用的 Nginx 也有連接埠轉送功能。
相關推薦:《Linux影片教學》
以上是linux連接埠轉送是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!