linux端口轉發是什么

linux中,端口轉發是指用nginx監聽端口,當有http請求到來時,將HTTP請求的HOST等信息與其配置文件進行匹配并轉發給對應的應用;端口轉發可以用于不加端口就訪問域名。

linux端口轉發是什么

本教程操作環境:linux7.3系統、Dell G3電腦。

linux端口轉發是什么

什么是端口轉發

當我們在服務器上搭建一個資料以及一個下載的應用,其中資料應用啟動了?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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享