• 技术文章 >运维 >linux运维

    linux端口转发是什么

    长期闲置长期闲置2022-03-11 10:41:40原创271

    在linux中,端口转发是指用Nginx监听端口,当有HTTP请求到来时,将HTTP请求的HOST等信息与其配置文件进行匹配并转发给对应的应用;端口转发可以用于不加端口就访问域名。

    本教程操作环境: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视频教程

    以上就是linux端口转发是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:怎么在linux上安装vnc 下一篇:linux怎么查看软件安装路径
    千万级数据并发解决方案

    相关文章推荐

    • linux怎么查看是几位的系统• linux怎么查询硬盘信息• linux中怎么删除文件夹• 怎么修改linux字符集• linux怎么查询网关信息
    1/1

    PHP中文网