美文网首页运维http服务相关Ngnix
使用 Nginx 实现域名解析到不同端口的应用

使用 Nginx 实现域名解析到不同端口的应用

作者: Honlyc | 来源:发表于2019-03-19 23:57 被阅读119次

    作为个人网站的服务器,一般都是一台。上面部署了各种应用,都是不同的端口。但是域名只能解析到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端口的应用了。

    相关文章

      网友评论

        本文标题:使用 Nginx 实现域名解析到不同端口的应用

        本文链接:https://www.haomeiwen.com/subject/regomqtx.html