在一台服务器同时运行多个网站,可以去为不同的网站创建一个虚拟主机,在 NGINX 上面创建虚拟主机就是在配置文件里面定义一个新的 server 区块,然后指定一下监听的端口号,IP 地址,主机的主机名,根目录,还有一些相关的配置。下面,我们去创建一个这样的配置文件。
NGINX 的配置文件是在 /etc/nginx 这个目录的下面(ls /etc/nginx),这里会出现很多东西。你要知道的主要就是这个 nginx.conf ,这个是 NGINX 的主配置文件。先进入到这个目录 ... 然后查看一下这个文件 ..
less nginx.conf
在这个文件里面定义了一个默认的 server 区块,这个就是我们安装完 NGINX 在浏览器直接打开服务器的 IP 地址看到的东西。在它的上面用了一个 include 指令,会把 /etc/nginx/conf.d 里面的 .conf 格式的文件包含进来,也就是我们可以直接在这个目录下面创建 .conf 的文件,这些文件都会被包含到 NGINX 的这个主配置文件里面。按一下 q 退出 ... 在 conf.d 这个目录下面创建一个配置文件 ... 可以使用 vi 或者 vim 编辑器,要使用 vim 你需要先去安装一下。
sudo vi conf.d/default.conf
在 conf.d 里面,创建一个 default.conf 文件 .. 先定义一个 server 区块 .. 后面是一组大括号 ... 然后用一个 listen 指定一下这台虚拟主机监听的端口号 ... 默认就是 80 端口 ... 注意每条指定最后都要用一个分号结尾 ... 另起一行,再输入 server_name ,用它指定一下主机名 ... 这里我用一个自己虚拟的主机名 web-stack.ninghao.local ,等会儿我得手工去配置一下自己电脑的 hosts 文件,让这个主机名,指定这台服务器的 IP 地址。 结尾是分号 ..
再用一个 root 指令,指定一下网站的根目录 ... 是在 /vagrant/app/default ... 注意这里的 /vagrant 这个目录,是跟我们电脑上的项目目录是同步的 .. 也就是,你可以在自己的电脑上编辑这个目录下面的东西,这样在这台 Linux 虚拟机上,可以在 /vagrant 这个目录下面找到这些文件。也就是,你可以在本地开发,然后在虚拟机上去运行你开发出来的东西。
一会儿我们要在 /vagrant 下面创建 app/default 这个目录 .. 分号结尾, 另起一行 .. 再用一个 index ,设置一下默认打开的文件 .. index.php index.html
现在我们就配置好了一台 NGINX 的虚拟主机,其实就在 NGINX 的配置文件里面,创建了一个 server 区块,做了一点设置。保存一下这个配置文件 ... esc ... :wq ... 回车 ..
再去创建一下网站的根目录 ... mkdir -p /vagrant/app/default ,在这个目录下面,我们可以创建一个文件 ... 打开本地上的 atom 编辑器 ... 在项目目录的下面,你会看到 app ,在它的下面,会有 default ,注意这个目录是我们在 Linux 虚拟机上创建的,因为项目目录默认跟虚拟机的 /vagrant 是同步的,所以,在这里你也会看到这个目录 ...
下面, 我们在这个 default ,也就是刚才创建的虚拟主机的网站的根目录,创建一个文件 ... 选中这个目录,按一下 a ... 文件名是 hello.html ... 在这个文件里再输入一个 您好 :)
保存 ... 再回到终端 ... 下面,我们要重新加载一下 NGINX,这样才能让刚才的配置生效 .. 可以先测试一下 nginx 的配置是否有效 ... sudo nginx -t ... 没有问题。 再输入 sudo systemctl reload nginx ...
因为我们给虚拟主机绑定了一个 server_name ,虚拟了一个主机名,你需要去编辑一下自己电脑的 hosts 文件,让这个虚拟的主机名指向服务器的 IP 地址 ... 这个文件在 Mac 上是在 /etc/hosts 里面。 在 Windows 上,默认是在 C:\Windows\System32\Drivers\etc 的下面 ... 文件名是 hosts
编辑一下这个 hosts 文件 ... 添加一行代码 ... 先是服务器的 IP 地址,这里就是 192.168.33.150 ... 空格,主机名 ... web-stack.ninghao.local ... 保存 ..
再打开本地电脑上的浏览器,输入 web-stack.ninghao.local/hello.html ... 你会看到在 /vagrant/app/default 下面的 hello.html 这个文件里的内容.. 说明我们配置的虚拟主机生效了。