您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux端口轉發怎么配置”,在日常操作中,相信很多人在linux端口轉發怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux端口轉發怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在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端口轉發怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。