作为个人网站的服务器,一般都是一台。上面部署了各种应用,都是不同的端口。但是域名只能解析到80
端口,而且如果你使用隐形URL
转发的话,又需要另外加钱(TX 的就是几百块一条....),这就很尴尬了。另一种显性URL
又会直接301
跳转,体验非常不好。这可如何是好呢?
这就需要用到Nginx
做反向代理了。什么是反向代理?我们先来看一下解释:
在计算机网络中,反向代理是[代理服务器]的一种。服务器根据客户端的请求,从其关系的一组或多组后端[服务器](如[Web服务器])上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。
简单来说,就是你请求一个地址,但你并不知道内部到底是哪个服务提供的。对客户端来说,是屏蔽了后端实际服务了的。那这个怎么实现我们所需要的呢?
1. 配置子域名解析
比如我们现在有一个域名www.anyway.com
和一个子域名m.anyway.com
,在我们的域名解析中,通常会把主机记录为www
和@
作为A
记录类型解析到一台服务器 IP。如图:
而现在我们要添加一条子域名的解析m.anyway.com
:
这个时候,子域名还是会解析到默认的80
端口所在的服务,接下来,就需要配置Nginx
来实现了。
2. 配置 Nginx
假设你现在有一条server
是解析到主应用:
server {
listen 80;
server_name www.anyway.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
即可再添加一条server
指向你的另一个应用:
server {
listen 80;
server_name m.anyway.com;
location / {
proxy_pass http://127.0.0.1:8082;
}
}
重启Nginx
后,直接使用curl m.anyway.com
即可看到效果。
同样的,在域名解析生效后,就可以直接通过m.anyway.com
来访问8082
端口的应用了。
网友评论