Nginx 使用多个.conf文件配置多个虚拟主机server的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 使用多个.conf文件配置多个虚拟主机server的方法相关的知识,希望对你有一定的参考价值。
参考技术A 一般nginx的配置都默认在 /usr/local/etc/nginx/nginx.conf 里,但是如果我们有多个虚拟主机需要配置的话,全部写在 nginx.conf 下会很臃肿,因此呢, Nginx 提供 include 包含其他配置文件的方式帮助我们解决这个问题,接下来我们就来看看具体怎么配置安装好 Nginx 后,其默认配置文件不需要更改,它已经帮我们导入了其他配置文件的目录,如上图,最后一句 include servers/*; ,意思就是该配置文件包含 nginx.conf 的同级目录下的 servers 文件夹下所有的文件,这时候我们只需要在 nginx.conf 的同级目录下创建一个 servers 的文件夹,然后创建自己的 .conf 文件就行,当然,如果你的配置文件是其他目录,就修改 include 后的路径就可以
xxx.conf 中的只需要写 server 块就行,其实就相当于把这个 server 块添加到 nginx.conf 中的 http 块中
重启 nginx
sudo nginx -s reload
nginx常用功能配置
一、规范优化nginx配置文件
nginx的主配置文件为nginx.conf,主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目录中,虚拟主机的配置文件按照网站的域名或功能取名,例如www.conf、bbs.conf、blog.conf等。当然,如果虚拟主机的数量不是很多,也可以把多个虚拟主机配置成一个单独的配置文件,仅仅和nginx的主配置文件 nginx.conf分离开即可。
这里使用的参数是include,下面先看看它的语法:
include file | mask
它可以放置在nginx配置中的任何位置。用法示例如下:
include mime.types; include www.conf; #包含单个文件; include vhosts/*.conf 包含vhosts下所有以conf结尾的文件;
下面是nginx配置的实战方案,具体如下:
#以基于域名的虚拟主机为例: [[email protected] conf]# mkdir extra [[email protected] conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf #过滤包含#号和空行,生成新文件nginx.conf 查看新生成的nginx配置文件 [[email protected] conf]# cat -n nginx.conf 1 worker_processes 1; 2 events { 3 worker_connections 1024; 4 } 5 http { 6 include mime.types; 7 default_type application/octet-stream; 8 sendfile on; 9 keepalive_timeout 65; 10 server { 11 listen 80; 12 server_name localhost; 13 location / { 14 root html; 15 index index.html index.htm; 16 } 17 error_page 500 502 503 504 /50x.html; 18 location = /50x.html { 19 root html; 20 } 21 } 22 } #把10-21行的虚拟主机配置内容分别写到extra/dmtest1.conf,extra/dmtest2.conf和extra/dmtest3.conf文件中,并做修改 [[email protected] conf]# sed -n ‘10,21p‘ nginx.conf >extra/dmtest1.conf [[email protected] conf]# sed -n ‘10,21p‘ nginx.conf >extra/dmtest2.conf [[email protected] conf]# sed -n ‘10,21p‘ nginx.conf >extra/dmtest3.conf [[email protected] conf]# cat extra/dmtest1.conf server { listen 80; server_name localhost; location / { root html/dmtest1; #站点目录修改为html/dmtest1; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } [[email protected] conf]# cat extra/dmtest2.conf server { listen 80; server_name localhost; location / { root html/dmtest2; #站点目录修改为html/dmtest2; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } [[email protected] conf]# cat extra/dmtest3.conf server { listen 80; server_name localhost; location / { root html/dmtest3; #站点目录修改为html/dmtest1; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
以上是关于Nginx 使用多个.conf文件配置多个虚拟主机server的方法的主要内容,如果未能解决你的问题,请参考以下文章