【经验】使用Nginx对kiftd进行反向代理和域名绑定

本文将向您演示如何通过Nginx对kiftd进行反向代理和域名绑定,从而让访问者能够通过指定的域名来访问kiftd或是您的其他网站页面。尤其是对于需要在同一台服务器上部署多个网站项目和kiftd的用户而言,该方法能够让项目部署变得更加灵活。

具体步骤

先从最基本的需求入手——假如我手中的域名是“www.my.kiftd.io”,并且已经绑定到了自己的服务器(计算机)IP上……现在,我希望所有访问者能够直接通过这个域名访问我的kiftd主页,那么应该按照如下步骤操作:

1,首先确保自己的域名能够正确解析至自己的服务器IP

在开始之前,必须再次确认自己的域名是否已经成功绑定到了服务器的公网IP上,这一点非常重要!

好在,测试的手段并没什么难度,直接ping一下就行了。例如我将域名“www.my.kiftd.io”绑定至本机地址“127.0.0.1”上(这里使用了一个虚拟IP进行演示,而在实际使用中,您必须确保您的域名正确绑定到了 服务器的公网IP 上)。

可以看到,域名“www.my.kiftd.io”已经能够正确解析到服务器的IP地址:

2,启动kiftd服务器(并确保其能够正常访问)

现在,启动kiftd服务器。这里使用的是9000端口部署kiftd,因此在它启动成功后可以直接使用IP地址+端口号访问。效果如下:

这就证明kiftd也已经启动,并且运行正常。

接下来,就该用Nginx服务器对其进行反向代理从而实现域名访问和端口转发了。

3,配置Nginx服务器

首先确保服务器上已经正确安装了Nginx。接下来,找到其配置文件“nginx.conf”(可以使用“nginx -t”命令查看该文件的位置),使用文本编辑器打开该文件,然后进行如下几处设置(红色方框位置):

 其中,server后面的位置要写上正确的kiftd所在IP地址+端口号(我这里就是“127.0.0.1:9000”),而server_name后面的位置则要写上正确的域名(我这里就是“www.my.kiftd.io”)。

于是,整个配置文件的内容会变成这个样子:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    # 这是kiftd的连接池
    upstream kiftd{
        server 127.0.0.1:9000;
    }

    # 这是kiftd的转发设置
    server {
        listen       80;
        #kiftd的目标转发域名
        server_name  www.my.kiftd.io;

        location / {
            proxy_pass http://kiftd;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 0;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    include servers/*;
}

配置工作完成。接下来就是见证奇迹的时刻……

4,启动Nginx服务器,使用域名访问kiftd主页

直接使用修改后的配置文件启动Nginx。示例如下(因为用了80端口,所以在Linux和Mac OS X上需要使用管理员权限“sudo”启动,Windows系统则不需要):

如果像上图一样能够启动成功,就说明配置文件的格式没有问题。否则,请重新检查“nginx.conf”文件中是否存在格式错误。

接下来,打开浏览器,输入配置好的域名“www.my.kiftd.io”然后回车:

可以看到,现在已经能够使用自己的域名来访问kiftd了。 大功告成!

通过反向代理技术,将不同的二级域名分别映射至kiftd和已有网站

如同本文开始所提到的那样,很多情况下,我们的服务器中可能已经部署了一个网站项目了,此时还需要再部署一个kiftd,并需要让访问者能够通过不同的二级域名分别访问我们的网站项目和kiftd。如何实现这种效果呢?请看下面这个例子……

假如我的服务器上已经有了一个网站项目,并且正常地运行在8080端口上,如图所示:

同时,我又在服务器上部署了个kiftd,使用9000端口(就是上面提到的)……

现在,我手中有一个一级域名“helloword.io”,其下有两个二级域名,一个是给已有网站项目准备的二级域名“www.helloword.io”,一个是给新部署的kiftd准备的二级域名“files.helloword.io”——我希望用户在访问“www.helloword.io”时能够进入已有的网站项目,而在访问“files.helloword.io”时能够进入kiftd来上传和下载文件。综上,应该在Nginx中这么设置:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    # 这是kiftd的连接池
    upstream kiftd{
        server 127.0.0.1:9000;
    }

    # 这是已有网站项目的连接池
    upstream myweb{
        server 127.0.0.1:8080;
    }

    # 这是kiftd的转发设置
    server {
        listen       80;
        #kiftd的目标转发域名
        server_name  files.helloword.io;

        location / {
            proxy_pass http://kiftd;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 0;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    # 这是已有网站项目的转发设置
    server {
        listen       80;
        #已有网站项目的目标转发域名
        server_name  www.helloword.io;

        location / {
            proxy_pass http://myweb;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    include servers/*;
}

配置完成后,重新启动Nginx服务器令配置生效。

这样一来,当访问者访问“www.helloword.io”时,便能成功访问我的网站项目:

而当访问者访问“files.helloword.io”时,便能成功访问我用于存放资料的kiftd:

实际上,只要这些二级域名不重样,那么在同一个服务器上部署多个少个kiftd或网站项目都没问题——Nginx可以对它们实现分别的端口请求转发。对于搭建一个完整的网站而言,这样做会显得更加灵活。

以上就是本文的全部内容。

---全文完---

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青阳龙野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值