Nginx从入门到精通(六)虚拟主机

本文详细介绍了如何使用Nginx配置基于端口和域名的虚拟主机,以及通过Nginx实现多站点的负载均衡。首先讲解了虚拟主机的基本概念和两种配置方式,接着演示了一个具体的案例,包括在Linux环境中配置三个Tomcat服务器,每个服务器承载不同城市的站点项目,然后在Nginx中设置相应的虚拟主机和负载均衡策略。最后,通过修改hosts文件并重启Nginx,验证了配置的正确性。
摘要由CSDN通过智能技术生成

 

概述

虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。

Nginx提供虚拟主机的功能,就是为了让我们不需要安装多个Nginx,就可以运行多个域名不同的网站。

Nginx下,一个server标签就是一个虚拟主机。nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可;

例如:www.meituan.com 切换城市,可以看到不同的城市地址不一样(二级域名)

比如一个公司有多个二级域名,没有必要为每个二级域名都提供一台Nginx服务器,就可以使用虚拟主机技术,在一台nginx服务器上,模拟多个虚拟服务器。

 

1  虚拟主机的配置方式

 

1.1基于端口的虚拟机配置(了解)

基于端口的虚拟主机配置,使用端口来区分

浏览器使用 同一个域名+端口 或 同一个ip地址+端口访问;

 

server {

    listen 8080;

                       server_name www.myweb.com;

                       location /myweb {

                       proxy_pass http://www.myweb.com;

                       }

}

 

server {

                       listen 9090;

                       server_name www.myweb.com;

                       location /p2p {

                       proxy_pass http://www.p2p.com;

                       }

}

 

1.2基于域名的虚拟主机(掌握)

基于域名的虚拟主机是最常见的一种虚拟主机,一台主机服务器(一个ip)可以绑定多个域名。通过不通的域名指定到不同的服务系统。

server {

        listen       80;

        server_name  www.myweb.com;

        location /myweb {

           proxy_pass http://www. myweb.com;

        }

}

 

server {

        listen       80;

        server_name  www.p2p.com;

        location /myweb {

           proxy_pass http://www.p2p.com;

        }

}

 

需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts

在hosts文件配置:

192.168.208.128 www.myweb.com

192.168.208.128 www.p2p.com

前面是Linux的IP,后面是你自定义的域名(线上环境可以通过域名ip绑定,流入阿里云域名解析)

 

2 虚拟主机案例,模拟城市站点网站(我们配置三个城市站点)

架构图如下:

 

2.1 实现步骤

 

(1)配置3个Tomcat,每个Tomcat一个站点项目

署在Tomcat的ROOT目录下,目的是访问的时候不用加上下文根,测试方便

拷贝一个新的tomcat9300

修改tomcat9300的端口号(修改server.xml文件)

在Xshell中开启三个选项卡,分别操作三个tomcat

清空三个tomcat的webapps/ROOT目录

使用Xftp将三个war包上传到三个tomcat的ROOT目录

beijing.war上传到tomcat9100服务器上

nanjing.war上传到tomcat9200服务器上

tianjin.war上传到tomcat9300服务器上

在tomcat启动前,使用unzip命令,直接解压三个war包,否则tomcat启动的时候,自动解压,还是有一个上下文目录的

在tomcat9200和9300上执行相同的操作

启动三个tomcat

在浏览器中直接访问tomcat进行测试

 

(2)在nginx.conf中配置三个Nginx虚拟主机

A、方式一:直接在nginx.conf中配置

在nginx.conf文件添加三个server节点,用于配置三个虚拟主机

server {

                 listen       80;

        server_name  beijing.myweb.com;

                 location / {

                     proxy_pass http://beijing.myweb.com;

                 }

}

 server {

                 listen       80;

        server_name  nanjing.myweb.com;

                 location / {

                     proxy_pass http://nanjing.myweb.com;

        }

}

server {

                 listen       80;

                 server_name  tianjin.myweb.com;

                 location / {

                     proxy_pass http://tianjin.myweb.com;

        }

}

B、方式二:通过单独的配置文件配置虚拟主机

         通过include的方式引入虚拟主机配置

         include /usr/local/nginx/conf/vhost/vhost.conf;

         将虚拟目录的配置文件加入到”http {}”部分的末尾,与其他server并列;

         文件是隔开的,配置更清晰,主文件没有那么多是server

 

(3)在nginx.conf中配置每个虚拟主机请求转发所对应的后端服务器(负载均衡,可以配置多个服务器)

           upstream beijing.myweb.com {

                 server  127.0.0.1:9100;

               }

            upstream nanjing.myweb.com {

                 server  127.0.0.1:9200;

             }

             upstream tianjin.myweb.com {

                 server  127.0.0.1:9300;

             }

 

(4)修改hosts文件,让Linxu的ip指向到三个站点的域名

C:\Windows\System32\drivers\etc\hosts

192.168.235.128 beijing.myweb.com

192.168.235.128 nanjing.myweb.com

192.168.235.128 tianjin.myweb.com

 

(5)重启Nginx,通过浏览器访问nginx进行测试

分别访问: www.nanjing.myweb.com,   www.beijin.myweb.com,  tianjin.myweb.com 可以看到访问分别是这三个项目站点。

 

(6)通过单独的配置文件配置虚拟主机,然后在nginx.conf中引入(参照步骤2的方式二)

         在/usr/local/nginx/conf目录下,创建vhost目录,并创建vhost.conf文件,在其中配置虚拟主机信息

在nginx.conf中引入上面的配置文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值