Nginx虚拟主机配置实战

一、虚拟主机的概念和类型介绍

1.虚拟主机概念

虚拟主机在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问。

这个独立的站点在配置里是由一定格式的标签段标记的,对于Apache软件来说,一个虚拟主机的标签段通常被包含在<VirtualHost></VirtualHost>内,而Nginx软件则使用的一个server{}标签来标示一个虚拟主机.一个web服务里可以有多个虚拟主机标签对,既可以同时支持多个虚拟主机站点。

2.虚拟主机类型

常见的虚拟主机类型有:

1>、基于域名的虚拟主机

是通过不同的域名区分不同的虚拟主机,基于域名的虚拟主机是企业应用最广泛的虚拟主机类型。

2>、基于端口的虚拟主机

是通过不同的端口来区分不同的虚拟主机

3>、基于IP的虚拟主机

通过不同的IP区分不同的虚拟主机

二、基于域名的虚拟主机配置实战

适用于企业级应用部署

<1>、配置基于域名的Nginx.conf内容

使用grep过滤命令来生成基础的Nginx主配置文件nginx.conf,然后根据生成的初始配置进行修改,使其成为所需的形式。

[root@bigdata conf]# diff nginx.conf.default nginx.conf     ##<==初始时这两个配置文件是一致的

Linux diff命令用于比较文件的差异。

diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

##<==过滤包含#号和空行,生成新文件nginx.conf

[root@bigdata conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf

过滤后的结果:

然后编辑nginx.conf文件

虚拟主机的关键部分就是server{}标签大括号里面的内容

<2>、创建域名对应的站点目录及文件

[root@bigdata conf]# mkdir -p html/www                                                                  ###创建域名对应的站点目录
[root@bigdata conf]# echo "http://www.etiantian.org" > html/www/index.html          ###追加内容到index.html文件中
[root@bigdata conf]# cat html/www/index.html
http://www.etiantian.org

root根目录的html/www设置(root html/www;).然后生成一个默认的首页文件index.html,文件内容是“http://www.etiantian.org”

<3>、检查语法并重新加载Nginx

首先检查修改过的Nginx配置文件语法是否正确.

[root@bigdata sbin]# ./nginx -t

提示:出现“syntax is ok”或“successful”,说明语法是正确的

平滑重启Nginx,即重新加载配置文件.

[root@bigdata sbin]# ./nginx

[root@bigdata sbin]# netstat -lntp|grep 80

测试域名站点配置的访问结果

第一步:配置hosts域名解析文件

第二步:进行curl访问

[root@bigdata conf]# curl www.etiantian.org
http://www.etiantian.org

<4>、配置多个基于域名的虚拟主机

创建新虚拟主机站点对应目录和文件

使用shell脚本进行创建:

[root@bigdata conf]# cat mkdir_zhn.sh
#!/bin/sh
for n in www blog bbs;
do
mkdir -p ../html/$n;
echo "http://${n}.etiantian.org" > ../html/$n/index.html;
cat ../html/$n/index.html;
done

三、基于端口的虚拟主机配置实战

适用于公司内部如OA/网站后台程序/CMS发布后台/MYSQL的web客户端等.

<1>、配置虚拟主机监听端口

要配置基于端口的虚拟主机,就需要为每个虚拟主机配置不同的端口.配置nginx.conf文件中的“listen 80”这个配置行的80端口修改掉

看到了三个端口

四、基于IP的虚拟主机配置实战

基于IP的虚拟主机在生产环境中的应用更为少见.

<1>、在服务器网卡上增加多个IP

既然要配置基于IP的虚拟主机,就需要让虚拟主机有不同的IP地址,此处以增加辅助IP的形式临时在eth0网卡上增加2个不同的IP

[root@bigdata sbin]# ip addr add 10.0.0.9/24 dev eht0

[root@bigdata sbin]# ip addr add 10.0.0.10/24 dev eht0

<2>、增加虚拟主机配置

每次修改完Nginx.conf配置后需要重新加载Nginx服务使修改的配置文件进行生效.

五、Nginx配置虚拟主机的步骤

<1>.增加一个完整的server标签段到结尾处。注意要放在http的结束大括号前,也就是将server标签段放入http标签.

<2>.更改server_name及对应网页的root根目录

<3>.创建server_name域名对应的根目录,并建立测试文件,如果没有index首页,访问会出现403错误。

<4>.检查Nginx配置文件语法,平滑启动Nginx服务,快速检查启动结果。

<5>.在客户端对server_name出配置的域名做host解析或DNS配置,并检查(ping域名看返回的IP是否正确)

一、删除一个文件的多少行到多少行

# sed -i '10 ,33d' nginx.conf     #删除nginx文件10行到33行的内容

二、向一个文件中插入字段

# sed  -i  ' 10  i  include extra/www.conf;\ninclude extra/bbs.conf;\ninclude extra/blog.conf;' nginx

#sed插入命令生效的结果是配置文件中第10行开始的地方增加三行包含虚拟主机文件的配置.

三、为Nginx增加错误日志(error_log)配置

error_log的语法格式及参数语法说明如下:

error_log       file         level;

关键字          日志文件      错误日志级别

日志级别有:【debug|info|notice|warn|error|crit|alert|emerg】

生产环境一般是:【warn|error|crit】三个级别

注意不要用info等级较低的级别,会带来巨大磁盘I/O消耗.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值