NGINX 实现端口转发

NGINX 实现端口转发

Nginx是个厉害的服务器,可以配置多个服务器,一个server就是一个服务器

server {

      listen       80;

      server_name  *.yourdomain.com;

 

   ....

}

代理转发是在server下面的location进行配置

server {

   // 服务器配置

   location  / {

   // ...... 代理配置

   }

}

常见的Nginx代理配置

upstream my_server {                                                        

    server 10.0.0.2:8080;                                               

    keepalive 2000;

}

server {

    listen       80;                                                        

    server_name  10.0.0.1;                                              

    client_max_body_size 1024M;

 

    location /my/ {

        proxy_pass http://my_server/;

        proxy_set_header Host $host:$server_port;

    }

}

通过该配置,访问nginx地址http://10.0.0.1:80/my的请求会被转发到my_server服务地址http://10.0.0.2:8080/


 

什么是端口转发

当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过

localhost:8001    //图书
localhost:8002    //电影

但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个应用都通过 80 端口访问。但我们知道服务器上的一个端口只能被一个程序使用,这时候如何该怎么办呢?一个常用的方法是用 Nginx 进行端口转发。Nginx 的实现原理是:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时,Nginx 从配置文件中知道这个是图书应用的 HTTP 请求,于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时,Nginx 从配置文件中知道这个是电影应用的 HTTP 请求,于是将此请求转发给 8002 端口的应用处理。一个简单的 Nginx 配置文件(部分)如下面所示:

#配置负载均衡池
#Demo1负载均衡池
upstream book_pool{
    server 127.0.0.1:8001;
}
#Demo2负载均衡池
upstream movie_pool{
    server 127.0.0.1:8002;
}

#Demo1端口转发
server {
    listen       80;
    server_name  book.chanshuyi.com;
    access_log logs/book.log;
    error_log logs/book.error;
    
    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://book_pool;
    }
}
#Demo2端口转发
server {
    listen       80;
    server_name  movie.chanshuyi.com;
    access_log logs/movie.log;
    error_log logs/movie.error;
    
    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://movie_pool;
    }
}

上面这段配置实现了:

1、当用户访问的域名是:http://book.chanshuyi.com 时,我们自动将其请求转发给端口号为 8001 的 Tomcat 应用处理。

2、当用户访问的域名是:http://movie.chanshuyi.com 时,我们自动将其请求转发给端口号为 8002 的 Tomcat 应用处理。

上面的这种技术实现就是端口转发。端口转发指的是由软件统一监听某个域名上的某个端口(一般是80端口),当访问服务器的域名和端口符合要求时,就按照配置转发给指定的 Tomcat 服务器处理。我们常用的 Nginx 也有端口转发功能。

 

参考:

https://www.php.cn/nginx/425693.html

https://www.cnblogs.com/zhaoyingjie/p/7248678.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119508.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 推荐一款神仙颜值的 Redis 客户端工具

    推荐一款神仙颜值的 Redis 客户端工具日常开发过程中,项目常常都会使用Redis来做缓存或者Session服务器,为了更直观方便,开发者常常会使用一些可视化工具,如RedisDesktopManager、RedisClent等,但界面UI做得不尽人意,作为当今时代,对软件的UI还是有所期待的,今天给大家分享一款,高颜值、功能强大的Redis客户端工具。AnotherRedisDesktopMan…

  • typedef int ElemType的理解[通俗易懂]

    typedef int ElemType的理解[通俗易懂]From:https://blog.csdn.net/zhuzhihai1988/article/details/82334651  typedefintElemType;为什么呀,我倒是知道后面用ElemType定义别的数据类型,看起来是把ElemType和int一样啦,那直接用int不用行了,为什么要用ElemType.这是定义一个线性表元素类型的最佳…

  • python画地形地貌图_opencv检测瑕疵python

    python画地形地貌图_opencv检测瑕疵python我们可以使用basemap这个工具包来实现中国地图的绘制首先需要加载一些包:importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkits.basemapimportbasemapbasemap包就是气象画图的利器,现在我们就可以愉快的画图了!plt.figure(1)map=basemap()map.drawcoastli…

    2022年10月30日
  • 群晖 winscp php,群晖DSM开启ROOT权限及WinSCP使用ROOT登录

    群晖 winscp php,群晖DSM开启ROOT权限及WinSCP使用ROOT登录本文以群晖DSM6.1.7(以下简称DSM)为例:一、准备工具1、putty2、WinSCP下载地址:http://pan.myxzy.com/download.php?id=81二、DSM开启SSHDSM的“控制面板”—>“终端机和SNMP”,勾上“启动Telnet功能”和“启动SSH功能”的勾,然后点击“应用”三、开启ROOT账号和修改密码1、使用putty连接DSM主机名称填…

  • 傅里叶级数与傅里叶变换公式推导「建议收藏」

    傅里叶级数与傅里叶变换公式推导「建议收藏」首先,傅里叶分析是指把一个周期或非周期函数展开成一个个三角函数的叠加,如果是对其还没有基本概念的,可以看看傅里叶分析之掐死教程,这篇文章不依赖数学公式却又十分透彻地讲述了傅里叶分析的基本概念,十分值得一读。但如果先深入探讨其中的数学由来,接下来会讲述详细的数学推导。傅里叶级数三角函数系的正交性三角函数系:{1,sinx,cosx,sin2x,cos2x,…,sinnx,cosnx,…},它由无数个sinnx和cosnx组成,其中n=0,1,2,…。正交性:∫−ππsin⁡nxcos⁡mxdx=0,

  • 流量分析技术丨分享科来网络通讯协议图2022版本(附下载链接)「建议收藏」

    流量分析技术丨分享科来网络通讯协议图2022版本(附下载链接)「建议收藏」新版本科来协议图,含下载

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号