初探单域名单端口多服务web


这阵子遇到好几次这么一种情况。一个域名,一个端口,但是存在不同后缀的文件。

当时首先想到的是端口复用,虽然没实际用过但是看这个词就知道功能上应该没问题。但是想了想,一般的开发或者运维人员技术力并不强,大概率是不会用端口复用的。直到昨天在某群里有师傅发了一个文章的截图,图里说到了这种情况,并且说可能是用了反代技术。这时候我才恍然大悟。

反代====反向代理

一般运维大多都会这个东西,属于比较基础的一种类vpn技术。之前我也只是大概直到这个东西,这次正好借机会学习学习。

首先说下反向代理的概念,先放两张图

正向代理

反向代理

两张图其实已经非常清楚了,要是还不懂的话。用通俗的话来说普通的代理(正向),将用户变成代理服务器去访问资源。反向代理是服务器把资源拿来给用户访问。一个是让用户出去,一个是让资源进来。

那么说起反向代理就不得不提到Nginx,一般反代服务器都是用这个,虽然Apache也可以,但是用的人好像并不是很多。

反向代理功能在Nginx的配置文件中设置。Nginx/conf/nginx.conf

该文件中的内容基本可以以这个结构理解

1
2
3
4
5
http {
server {

}
}

http即http服务器相关,server即开启的服务功能模块。所以我们需要在server里进行设置。

image-20210813203043769

如图所示。

server监听80端口

服务识别名称为绑定的域名

location 即为本地相关设置,后面可跟路径、正则。在这里我写了两个规则,分别是判断两个格式后缀。

所以这个配置的功能就是:当以www.ttt.com访问到该服务器时,判断访问后缀。如果是html则反代888端口服务,txt则反代到889端口的服务上。(两个端口是为了区分不同网站,因为我也真没有两台服务器,只好以一台服务器的两个端口区分)

location 配置规则

https://juejin.cn/post/6908623305129852942

y4er师傅说也可能是本地web服务+一个反代。这种思路大概也能出现这种功能,但我觉得还是保持存疑。因为在配置文件上好像有一些冲突的地方。web服务应该是直接在http一层设置的,反代在server层。两个先不说优先级和覆盖。location的规则可是只能在本层生效,上层应该是不行的。

当然,到这里我就没再试了,也不敢肯定,只是推测。