在Nginx中虚拟主机配置有多种方法:可以直接在主配置文件(Nginx.conf)中增加,也可以将所有的虚拟主机单独写一个文件然后在主配置段中包含进去(include 文件名),最后一种方法是每个虚拟主机都为一个单独的配置文件。本篇以第三种方法来做演示
首先确保Nginx已经安装完成接下来创建虚拟主机的配置文件及虚拟主机文件所在的目录(我的安装路径在/usr/local/Nginx)
cd /usr/local/nginx/conf #切换到配置文件目录
mkdir vhosts #创建虚拟主机配置文件所在的目录
touch vhosts/vhost1.conf #创建第一个虚拟主机的配置文件
在此文件中加入如下行:
server {
listen 80; # 设置监听端口;
server_name ; # 设置主机名;
location / { # 定义网站跟目录;
root /web/vhost/test1; # 此目录如果不存在则需创建
index index.html; # 此文件也需要事先创建
}
error_page 500 502 503 504 /usr/local/nginx/html/50x.html; # 定义页面状态码为5XX系列的错误页面
access_log /web/vhost/test1/logs/test1.access.log; # 设置访问日志路径
error_log /web/vhost/test1/logs/logs/test1.error.log crit; # 设置错误日志路径
}
如果有关上方的目录及文件不存在则按照一下方法创建
mkdir /web/vhost/test/logs -p
touch /web/vhost/test/index.html
编辑index.html文件随便添加内容然后保存退出即可
这时虚拟主机的配置文件已经搞定,但是重启nginx服务是不会生效的因为并没有包含进去,打开nginx.conf文件将其添加至http{}段的最后一行,一定要在http段中。
由于是测试使用所以打开浏览器可能也不会访问到,这时可以修改本机的hosts文件添加如下内容:
IP(web server 的服务器ip地址) hostname(就是我们定义的server_name)
全部设置完成后就可以重启nginx服务器了,如果没有添加服务启动脚本的话可以使用nginx -s quit && nginx启动(如果没有将nginx的sbin目录加入到环境变量中就需要使用绝对路径来启动它/usr/local/nginx/sbin/nginx -s quit && /usr/local/nginx/sbin/nginx)
查看下访问结果
接下来为此虚拟主机开启状态监控功能,在虚拟主机的配置文件中加入一下内容
location /status{
stub_status on; #启动状态功能
access_log off; #关闭访问日志
}
使用nginx -t 来检查配置文件是否正常,如果出现一下内容表示配置文件正常,可以重启nginx服务