Nginx根据域名分发不同端口

/ Nginx / 4 条评论 / 240浏览
转载请标明出处:
原文首发于:https://www.zhangruibin.com
本文出自RebornChang的博客

根据域名分发不同端口

需求背景

博主有买了两个域名,但是只购买了一个主机,主机只有一个80端口,但是又不想访问的时候带端口访问,所以就想着通过不同的域名请求访问不同的端口。

实现方式nginx代理分发

在一个主机上部署了两个服务实例,分别是81,82端口。域名经过DNS解析之后访问的是指定服务器IP的80端口,所以实现方式就是在域名服务进行DNS解析的时候,访问指定服务器的80端口,使用NGINX监听80端口的信息,如果是zhangruibin.com就转发到82端口上,如果是92cnb.com就转发到81端口上。

安装NGINX

安装NGINX很简单,网上有很多的教程,此处不再赘述,可以参考博文:https://www.cnblogs.com/kaid/p/7640723.html。

注意:1.安装NGINX的主机,80端口必须空闲,因为NGINX默认占用端口为80端口。否则会在启动NGINX的时候报错。 2.部署的服务对应的端口一定要开启,看系统使用的是Firewalls还是iptables。

配置NGINX

编辑NGINX的conf文件夹下面的nginx.conf文件

vim /usr/local/nginx/conf/nginx.conf

因为博主的要分发的是两个域名,所以设置:worker_processes 2; 另外需要复制一份server{}并且修改两个server{}里面的内容:

  server {
       listen       80;
       server_name  www.92cnb.com 92cnb.com ;

       location / {
           # 反向代理到 81 端口
           proxy_pass https://127.0.0.1:81;
           add_header Access-Control-Allow-Origin *;
           root   html;
           index  index.html index.htm;

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

          
       }
   server {
       listen       80;
       server_name  www.zhangruibin.com zhangruibin.com;

       #charset koi8-r;

       #access_log  logs/host.access.log  main;

       location / {
           # 反向代理到 82 端口
           proxy_pass https://127.0.0.1:82;
           add_header Access-Control-Allow-Origin *;
           root   html;
           index  index.html index.htm;
       }

       #error_page  404              /404.html;

       # redirect server error pages to the static page /50x.html
       #
       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
           root   html;
       }
   }

保存之后,使nginx重新加载配置文件:./nginx -s reload 此时再访问域名,就分发到了指定的端口。 效果如下图所示: Over!

  1. 我也有这个需求。刚好看到了。

    回复
  2. 我也有这个需求。刚好看到了。

    回复
  3. alert

    回复
  4. hgf\u0068\u0067\u0066\u0068\u0067\u0066\u0068\u0067\u0066

    回复