Nginx虚拟主机配置实践(一)
一、虚拟主机的概念
在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问。
二、虚拟主机的类型
-
基于域名的虚拟主机
-
基于端口的虚拟主机
-
基于IP的虚拟主机
说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可。
三、基于一个域名虚拟主机的配置
-
Nginx主配置文件结构
说明:Nginx的主配置文件是nginx.conf,nginx.conf.default与nginx.conf内容是一样的。
执行上述命令之后,得到如下内容:
虚拟主机的配置。增加的主机一定要在nginx.conf的http{}区块内,最好放在虚拟主机配置的下面。
server {
listen 80;
server_name
location / {
root html/org;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
[root@nginx-oldboy nginx1.10]# cat !$
cat ./html/org/index.html
第二次测试
-
检查下站点目录结构
[root@nginx-oldboy nginx1.10]# tree
-bash: tree: command not found
解决方法:
[root@nginx-oldboy nginx1.10]# yum install -y tree
[root@nginx-oldboy nginx1.10]# tree html/
-
-
将虚拟主机配置成单独的配置文件与nginx主配置文件nginx.conf分开
说明:
(1)适用于虚拟主机数量不多的情况;
(2)主配置文件包含的所有虚拟主机的子配置文件会统一放在extra目录中;
(3)虚拟主机配置单独的配置文件,使用参数include,它可以放在nginx主配置文件中任何位置。
[root@nginx-oldboy conf]# mkdir extra
[root@nginx-oldboy conf]# sed -n '10,21p' nginx.conf
[root@nginx-oldboy conf]# cat extra/wtf.conf
[root@nginx-oldboy conf]# sed -n '22,33p' nginx.conf > extra/org.conf
[root@nginx-oldboy conf]# cat extra/org.conf
-
更改主配置文件nginx.conf
删除主配置文件nginx.conf中所有虚拟主机的配置,包含server{}标签。
[root@nginx-oldboy conf]# sed -i '10,33d' nginx.conf
[root@nginx-oldboy conf]# cat nginx.conf
这样虚拟主机配置文件就与nginx主配置文件分离开了!
-