Nginx (八) --------- 虚拟主机

本文介绍了Nginx虚拟主机的概念,包括基于端口和域名的配置方法。通过配置多个server节点实现虚拟主机,使得一台服务器可托管多个网站。详细步骤包括修改配置文件、设置hosts文件及实例演示了如何配置多个Tomcat服务器,同时讲解了如何通过Nginx进行负载均衡。
摘要由CSDN通过智能技术生成


一、概念

虚拟主机,就是把一台物理服务器划分成多个 “虚拟” 的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。Nginx 提供虚拟主机的功能,就是为了让我们不需要安装多个 Nginx,就可以运行多个域名不同的网站。

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

例如:www.meituan.com 切换城市,可以看到不同的城市地址不一样(二级域名)
比如一个公司有多个二级域名,没有必要为每个二级域名都提供一台 Nginx 服务器,就可以使用虚拟主机技术,在一台 Nginx 服务器上,模拟多个虚拟服务器。

二、配置虚拟主机方式

1. 基于端口的虚拟主机

基于端口的虚拟主机配置,使用端口来区分;
浏览器使用 同一个域名 + 端口 或 同一个ip地址 + 端口访问;

server {
   	listen 8080;
   	server_name www.myweb.com;
	location /myweb {
	    proxy_pass http://www.myweb.com;
	}
}
server {
	listen 9090;
	server_name www.p2p.com;
	location /p2p {
      	proxy_pass http://www.p2p.com;
	}
}

2. 基于域名的虚拟主机

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

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.160.133 www.myweb.com
192.168.160.133 www.p2p.com

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

三、案例

模拟城市站点网站,示例图如下
在这里插入图片描述
配置 3 个Tomcat,每个 Tomcat 一个站点项目

● 由于我们之前已经配置好了两个Tomcat,再配置一个即可

● 拷贝一个新的 Tomcat 9300
在这里插入图片描述
● 修改 Tomcat 9300 的端口号 (修改 server.xml 文件)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
● 清空三个 Tomcat 的 webapps/ROOT 目录

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
● 使用 Xftp 将三个 war 包上传到三个 tomcat 的 ROOT 目录

● beijing.war上传到 tomcat 9100 服务器上

在这里插入图片描述
● nanjing.war 上传到 tomcat 9200 服务器上

在这里插入图片描述
● tianjin.war上传到 tomcat 9300 服务器上

在这里插入图片描述
● 在 tomcat 启动前,使用 unzip 命令,直接解压三个 war 包,否则 tomcat 启动的时候,自动解压,还是有一个上下文目录的。

在这里插入图片描述
● 在 tomcat 9200 和 9300上执行相同的操作

● 启动三个tomcat

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

● 方式一

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

在这里插入图片描述
● 方式二:通过单独的配置文件配置虚拟主机

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

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

将虚拟目录的配置文件加入到”http {}”部分的末尾,与其他server并列。
文件是隔开的,配置更清晰,主文件没有那么多是server。

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

在这里插入图片描述
修改hosts文件,让 Linux 的 ip 指向到三个站点的域名

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

192.168.160.133 beijing.myweb.com
192.168.160.133 nanjing.myweb.com
192.168.160.133 tianjin.myweb.com

在这里插入图片描述
重启nginx,通过浏览器访问nginx进行测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在森林中麋了鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值