欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx根据域名分发不同端口

程序员文章站 2022-05-06 20:37:30
...
转载请标明出处:
原文首发于:http://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 http://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 http://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
此时再访问域名,就分发到了指定的端口。
效果如下图所示:
Nginx根据域名分发不同端口
Nginx根据域名分发不同端口
Over!