Nginx学习八:虚拟主机

文章目录

  • 一、概述
  • 二、配置虚拟主机方式
    • 方法一:基于端口的虚拟主机(了解)
    • 方法二:基于域名的虚拟主机(掌握)
  • 三、虚拟主机案例,模拟城市站点网站(我们配置三个城市站点)
    • 3.1架构图
    • 3.2 实现步骤
      • 3.2.1 配置3个Tomcat,每个Tomcat一个站点项目
      • 3.2.2 修改tomcat9300的端口号(修改server.xml文件)
      • 3.2.3在Xshell中开启三个选项卡,分别操作三个tomcat
      • 3.2.4清空三个tomcat的webapps/ROOT目录
      • 3.2.5使用Xftp将三个war包上传到三个tomcat的ROOT目录
      • 3.2.6在tomcat启动前,使用unzip命令,直接解压三个war包,否则tomcat启动的时候,自动解压,还是有一个上下文目录的
      • 3.2.7启动三个tomcat
      • 3.2.8在nginx.conf中配置3个Nginx虚拟主机
        • 方式一:直接在nginx.conf中配置
        • 方式二:通过单独的配置文件配置虚拟主机
      • 3.2.9 在nginx.conf中配置每个虚拟主机请求转发所对应的后端服务器(负载均衡,可以配置多个服务器)
      • 3.2.10 修改hosts文件,让Linux的ip指向到三个站点的域名
      • 3.2.11 重启nginx,通过浏览器访问nginx进行测试
      • 3.2.12 通过单独的配置文件配置虚拟主机,然后再nginx.conf中引入(参照步骤2的方式二)

一、概述

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

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

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

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

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

二、配置虚拟主机方式

方法一:基于端口的虚拟主机(了解)

基于端口的虚拟主机配置,使用端口来区分
浏览器使用 同一个域名+端口 或 同一个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;
    		}
}

方法二:基于域名的虚拟主机(掌握)

基于域名的虚拟主机是最常见的一种虚拟主机

	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;
        }
}

Windows:

	需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts
	在hosts文件配置:
	
192.168.208.128 www.myweb.com
192.168.208.128 www.p2p.com

	前面是Linux的IP,后面是你自定义的域名

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

3.1架构图

Nginx学习八:虚拟主机_第1张图片

3.2 实现步骤

3.2.1 配置3个Tomcat,每个Tomcat一个站点项目

部署在Tomcat的ROOT目录下,目的是访问的时候不用加上下文根,测试方便
拷贝一个新的tomcat9300
Nginx学习八:虚拟主机_第2张图片

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

Nginx学习八:虚拟主机_第3张图片

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

在这里插入图片描述

3.2.4清空三个tomcat的webapps/ROOT目录

Nginx学习八:虚拟主机_第4张图片
Nginx学习八:虚拟主机_第5张图片

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

beijing.war上传到tomcat9100服务器上
Nginx学习八:虚拟主机_第6张图片
Nginx学习八:虚拟主机_第7张图片

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

Nginx学习八:虚拟主机_第8张图片
在tomcat9200和9300上执行相同的操作

3.2.7启动三个tomcat

Nginx学习八:虚拟主机_第9张图片
Nginx学习八:虚拟主机_第10张图片
Nginx学习八:虚拟主机_第11张图片

3.2.8在nginx.conf中配置3个Nginx虚拟主机

方式一:直接在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;
        }
}

Nginx学习八:虚拟主机_第12张图片

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

通过include的方式引入虚拟主机配置
include /usr/local/nginx/conf/vhost/vhost.conf;
将虚拟目录的配置文件加入到”http {}”部分的末尾,与其他server并列;
文件是隔开的,配置更清晰,主文件没有那么多是server

3.2.9 在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;
    	}

Nginx学习八:虚拟主机_第13张图片

3.2.10 修改hosts文件,让Linux的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

3.2.11 重启nginx,通过浏览器访问nginx进行测试

在这里插入图片描述
Nginx学习八:虚拟主机_第14张图片

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

在/usr/local/nginx/conf目录下,创建vhost目录,并创建vhost.conf文件,在其中配置虚拟主机信息
Nginx学习八:虚拟主机_第15张图片

你可能感兴趣的:(nginx,nginx,服务器,运维)