NGINX 实现端口转发

您所在的位置:网站首页 nginx中转流量 NGINX 实现端口转发

NGINX 实现端口转发

2024-01-21 17:53| 来源: 网络整理| 查看: 265

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

作者:jsp 出处:http://www.cnblogs.com/jingsupo/

-------------------------------------------

个性签名:无论在哪里做什么,只要坚持服务、创新、创造价值,其它的东西自然都会来的。

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3