当前位置:   article > 正文

从http请求过程分析为何不同业务的http请求都可以使用默认的缺省端口80,8080等_可以占用默认端口吗

可以占用默认端口吗

问题:

http上传请求时url地址中一般无显示指定端口号,这时会使用默认的80端口;但是可能不止一个业务需要用到http请求,技术上web服务端那边肯定无法根据业务逻辑的数据格式去分别解析区分它们;因为业务是事先无法预知的;如果url解析的域名对应了不同ip地址那还好说=>不同ip上端口号重复也
无所谓;但是如果不同业务的http请求对一个ip进行【这是肯定的,因为不可能一台主机硬件只是为了一种业务的http请求,要满足多种业务的http请求要开多台主机;这也太浪费资源与降低效率了】如果说http请求时显示指定端口号,这样对于浏览器或者客户端而言使用上就不怎么方便透明了;

解决:反向代理服务器

客户端输入域名,通过DNS将域名解析成为服务器ip,找到代理服务器,因为http协议服务所占用的端口默认为80端口,所以会访问服务器的80端口,然后再通过代理服务器将请求转发到不同的服务器以及端口中.如图:域名和端口号的对应

在这里插入图片描述

一台主机上开启多个端口进行http业务处理;而又不把端口暴露给浏览器或者客户端,这时就需要类似于端口映射的效果了=>把不同的域名映射到同一ip的不同端口上【不同的域名对应不同的业务http请求,但是请求端口可以保存一致,比如说80】这样就实现了一台主机上不同端口处理不同的http业务;转化成了客户端或者浏览器那边对于不同域名的http请求;好了现在对于客户端和浏览器来说使用http请求是方便透明的了;而这个类似端口映射的效果就是反向代理服务器干的活;不同的域名被dns解析后可能对应同一个ip,这个ip是反向代理服务器的ip并且访问其80端口;反向代理服务器根据域名的不同把请求转发给真正的后台处理服务器的ip和其端口上【参见下面Nginx反向代理的配置示例】【这个80端口也是一般协定预留的,反向代理服务器上完全可以进行其他端口的配置如8080端口等】

1.2 场景假设
假设有两台机器,一台机器 192.168.5.61 作为代理服务器,一台机器 192.168.5.24 作为内网服务器。
下面以 Windows 系统为例进行配置。3. 反向代理配置
3.1 说明
访问代理服务器env.finedevelop.com:56108/WebReport/ReportServer?op=fs,代理将请求都转给内网报表服务器 192.168.5.24:8080,从而实现对内网报表服务器的访问。
注:这个属于常规环境配置,客户需要根据自己的网络环境自行配置,这里配置步骤仅供参考。
代理服务器配了一个端口映射,可以被外网访问 192.168.5.61:8443—>env.finedevelop.com:56108
内网报表服务器的访问地址是 192.168.5.24:8080/WebReport/ReportServer?op=fs3.2 步骤
1)代理服务器的部署同上,下载并安装 Nginx。
2)修改 Nginx 配置文件conf/nginx.conf,在http{}之间添加如下代码:

server {
listen 8443; # listen 端口,代理服务器的端口,可以自定义
server_name env.finedevelop.com; # server_name,写的代理服务器的地址
location / {
proxy_pass http://192.168.5.24:8080; # 转发地址 内网服务器的 IP 和端口
proxy_set_header Host env.finedevelop.com:56108; # 转发的请求里的 host 信息,,写的打开在浏览器里 URL 的地址
}
}
3)重启 Nginx,浏览器内输入env.finedevelop.com:56108/WebReport/ReportServer可以正常登录并访问服务器,则表示配置成功。
即可通过env.finedevelop.com:56108/WebReport/ReportServer?op=fs访问内网服务器,同时在 微信/钉钉 管理中也可以同步获取通讯录了。

最后来说一说 ip和域名的关系:

ip地址和域名是一对多的关系,一个ip地址可以有多个域名,但是相反,一个域名只能有一个ip地址;
首先多个域名根据dns解析成同一个ip地址,这个很好理解;这也是反向代理服务器能工作的基础【 不同域名的http业务请求被同一个反向代理服务器接收】 所以 ip和域名 是一对多;
而在同一时刻同一台电脑(该电脑对应的地域dns服务器)一个域名只能被解析成一个ip;这个也很正常,因为只有这样才能确定http请求直接发送给谁;

最后聊聊DNS服务器是如何解析的:实话说我并不清楚dns如何把域名解析成ip的,但是不管是dns服务器动态修改域名-ip对应表,还是不同地域的dns服务器对同一个域名解析出不同的目标ip=>所造成的只不过是同一域名在不同时段或者不同地域上对应不同ip的假象【即:同一时刻同一地域一个域名只能被解析成一个ip】
IP地址和域名的关系
1、ip地址和域名是一对多的关系,一个ip地址可以有多个域名,但是相反,一个域名只能有一个ip地址;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/147701
推荐阅读
相关标签
  

闽ICP备14008679号