当前位置 主页 > 服务器问题 > nginx问题汇总 >

    ginx反向代理多个域名指向同一个ip的不同网站的方法

    栏目:nginx问题汇总 时间:2018-12-07 13:11

      一个服务器需要挂载多个项目【重点是都能通过域名访问】
      实现原理:
      1.当前市面上看到的一些服务器,开放的端口一般都要求为 '80' 端口 所以80端口成了商用端口
      2.域名的绑定是绑定一个一般是绑定你的服务器ip地址
      3.使用服务器的80端口拦截访问的域名是什么跳转至服务器的其他
      举例
      只有一台服务器,一个IP;
      服务器上有多个应用运行在不同的端口。例如:
      127.0.0.1:4000 运行着一个博客应用
      127.0.0.1:3009 运行着一个微信公众号机器人的后台希望不同的域名,都解析到该IP的80端口,但是转发到不同的端口去:
      www.baidu.com 能访问到127.0.0.1:4000的应用
      新增一个Ai.baidu.com 能访问到127.0.0.1:3009的微信后台(微信要求绑定服务器时绑定的是80端口)
      这里给出 Nginx 的几个命令 更改之后需要重启你的Nginx 反向代理!
      (1)vim编辑nginx的nginx.conf(反向代理配置文件)
      sudo vi /etc/nginx/nginx.conf
      (2)使用下面命令安装nginx
      yum install nginx
      (3)启动Nginx
      service nginx start
      或
      systemctl start nginx.service
      (4)重启nginx
      service nginx restart
      具体步骤
      1. 在Nginx的conf中添加upstream
      指向第二个应用的本机地址。
      upstream baidu{
      server 127.0.0.1:3009;
      }
      附上原有的第一个应用的upstream。
      upstream Ai.baidu{
      server 127.0.0.1:3009;
      }
      2. 在Nginx的conf中添加二级域名主机头80端口的侦听
      PS:本例中,要新添加的解析二级域Ai.baidu.com
      端口号为80
      server_name 精确匹配到二级域名(本例中为Ai.baidu.com。其他规则或www也可以,只要与域名商处解析行为一致即可)
      再给conf添加如下1个server:
      server {
                                  listen      80;      
                                  server_name www.baidu.com;      
                                  location / {      
                                              proxy_pass http://baidu;      
                                  }      
                                  error_page  500 502 503 504  /50x.html;    
                                  location = /50x.html {        
                                                  root  html;      
                                  }
                            }
     
                server {      
                                  listen      80;      
                                  server_name Ai.baidu.com;      
                                  location / {      
                                          proxy_pass http://Ai.baidu;      
                                  }      
                                  error_page  500 502 503 504  /50x.html;    
                                  location = /50x.html {        
                                              root  html;      
                                    }
                            }