淘淘商城——nginx配置虚拟主机

我相信大家能阅读到这里,说明大家已经安装好了nginx。本文我们将来学习下nginx的配置文件以及如何配置虚拟主机。
配置虚拟主机,相当于在一台服务器上装多个网站,这么多个网站我们总得区分一下,如何区分不同的网站呢?可以有两种形式:

  1. 通过端口来区分,这也是我们用的比较多的形式,就像我们在一台服务器上装多个tomcat,多个tomcat运行在不同的端口一样。
  2. 通过域名来区分,如果大家都想用80端口,这时怎么办呢?这时就可以通过域名来区分了。

下面我就来为大家介绍配置虚拟主机的这两种形式。

nginx配置虚拟主机——端口区分

我们首先看一下nginx的配置文件所在的位置,如下图所示。
这里写图片描述
我们使用vim nginx.conf命令打开nginx.conf配置文件,如下图所示。
这里写图片描述
接着往下看配置文件,如下图所示。
这里写图片描述
下面我举例使用端口来区分虚拟主机,为了更加方便地操作nginx.conf文件,我们可以使用Nodepad++来连接Linux服务器并对文件进行编辑,想必有些同学还不知道,所以我特地写了一篇博客,大家可以参考淘淘商城系列——使用Nodepad++来编辑我们服务器的配置文件这篇博客进行学习哟!我们打开nginx.conf文件,复制一份server节点配置,修改端口为81,root目录指定一个新的目录html81。如下图所示(为了简洁,把注释的内容都删掉了)。
这里写图片描述
html81在nginx目录下是没有的,所以我们复制一份html目录并命名为html81,如下图所示。
这里写图片描述
为了区分出我们访问的nginx首页,我们进入html81目录,修改index.html,将<h1>Welcome to nginx!</h1>修改为<h1>Welcome to nginx81!</h1>,如下图所示。
这里写图片描述
配置文件修改了之后,又要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,如下图所示。
这里写图片描述
此时,我们访问81端口就会看到如下图所示界面,可以看见访问到的是81端口的欢迎页。说明我们配置的虚拟主机起作用了。
这里写图片描述

nginx配置虚拟主机——域名区分

上面学习了使用端口号来区分不同的网站,下面我们学习如何通过域名来区分不同的网址。
我们平时访问淘宝时只需要在浏览器地址栏中输入taobao.com便可以访问淘宝首页,这个”taobao.com”便是域名,而且”taobao.com”是一级域名,我们买域名买的便是一级域名,而”www.taobao.com”是二级域名。如果我们想在浏览器地址栏中输入域名访问我们自己的网站的话,可有两个途径,第一个途径是买一个属于自己的域名,访问这个域名需要经过DNS服务器(把域名解析为ip地址,保存的就是域名和ip之间的映射关系),DNS服务器就是为了将访问的域名对应到相应的IP上,所以最终还是通过IP实际访问网站的(使用这个途径,别的人都可以访问到你的网站)。注意,一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。第二个途径是配置本地的hosts文件,hosts文件在windows系统中的目录如下图所示。
这里写图片描述
我们可以在hosts文件当中配置IP与域名的对应关系,配置了hosts文件后,我们在浏览器地址栏中输入配置在hosts文件中的域名后将不再经过DNS服务器,而是直接访问hosts文件中配置的IP地址,比如我们把nginx所在的虚拟机的IP配置到hosts文件中并且配两个域名(端口一样,就靠域名来区分不同的网站)如下图所示。
这里写图片描述
下面我们到nginx的配置文件中再添加两个虚拟主机的配置,如下图所示,可以看到端口号都是默认的80,只是域名不一样而已,为了区分不同的网站,我们分别新建一个html目录并命名为html-test和html-test1。
这里写图片描述
html-test和html-test1在nginx目录下默认是没有的,我们分别复制html目录并命名为html-test和html-test1,如下图所示。
这里写图片描述
为了在nginx首页区分出不同的网站,我们分别进入html-test和html-test1目录下,修改index.html文件,如下图所示。
这里写图片描述

这里写图片描述
配置文件修改了之后,又要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,如下图所示。
这里写图片描述
然后,我们在浏览器地址栏中输入www.test.com,如下图所示,可以看到这时访问的是我们的nginx的首页而且是我们指定的nginx的首页。
这里写图片描述
我们再试试在浏览器地址栏中输入www.test1.com,如下图所示,可以看到这时访问的是html-test1目录下的nginx首页。
这里写图片描述