共计 2869 个字符,预计需要花费 8 分钟才能阅读完成。
在 Nginx 中虚拟主机配置有多种方法:可以直接在主配置文件(Nginx.conf)中增加,也可以将所有的虚拟主机单独写一个文件然后在主配置段中包含进去 (include 文件名),最后一种方法是每个虚拟主机都为一个单独的配置文件。本篇以第三种方法来做演示
首先确保 Nginx 已经安装完成接下来创建虚拟主机的配置文件及虚拟主机文件所在的目录 (我的安装路径在 /usr/local/Nginx)
cd /usr/local/nginx/conf #切换到配置文件目录
mkdir vhosts #创建虚拟主机配置文件所在的目录
touch vhosts/vhost1.conf #创建第一个虚拟主机的配置文件
在此文件中加入如下行:
server {
listen 80; # 设置监听端口;
server_name www.test.com; # 设置主机名;
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 服务
然后在浏览器中输入 www.test.com/status 查看状态页面是否显示
活跃连接数 2 个,接受 5 个请求 处理 5 个请求 响应 64 个(我一直在刷新。。)读 0 个 写 1 个 等待 1 个
一般这些状态页面是不允许未经授权的用户访问的,所以我们需要设置一下用户认证,在虚拟主机的状态页面中添加如下内容:
auth_basic “admin”; auth_basic_user_file /web/vhost/test1/.passwd; |
接下来在 /web/vhost/test1/ 目录下生成.passwd 文件生成方法有以下两种
A. 使用 htpasswd 工具直接生成
htpasswd -c -m /web/vhost/test1/.passwd # htpasswd 为 httpd 的工具如果无法使用请安装 yun imstall httpd-tools |
B. 使用 openssl 加密后手动创建文件并添加
openssl passwd -apr1 -salt `echo $RANDOM` touch /web/vhost/test1/.passwd |
此文件的格式为:
用户名:密码 |
使用 nginx - t 检查下,如果配置文件没问题那就重读下配置文件 nginx -s reload 然后打开浏览器尝试访问
————————————– 分割线 ————————————–
CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
————————————– 分割线 ————————————–
Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2014-12/110991.htm