1.Nginx的功能模块
Nginx软件的强大是由于它具有众多的功能模块,下面列出企业中常用的重要模块。
(1)Nginx核心功能模块(Core functionality)
Nginx核心功能模块负责Nginx的全局应用,主要对应主配置文件的Main区块和Event区块区域,这里有很多的Nginx必须的全局参数配置。
(2)标准的http功能模块集合
ngx_http_access_module,ngx_http_gzip_module,ngx_http_upstream_module,ngx_http_proxy_module,ngx_http_log_module模块等等,具体的说明可以自行百度或者到官网查询。
2.Nginx的目录说明
其中conf的配置文件较多,最为重要的是nginx.conf的文件,这是nginx的主配置文件。带有default的文件都是备份文件。
3.Nginx的主配置文件
Nginx的配置文件是一个纯文本文件,它一般位于Nginx安装目录的conf目录下,整个配置文件是以block的形式组织的。每个block一般以一个大括号“{ }”来表示,block可以分为几个层次,整个配置文件中Main指令位于最高层,在Main层下面可以有Events、HTTP等层级,而在HTTP层中又包含有Server层,即server block,server block中又可分为location层,并且一个server block中可以包含多个location block。
一个完整的配置文件结构如下图所示。
Nginx配置文件注释:
worker_processes 1; #worker进程的数量
events { #事件块的开始
worker_connections 1024; #每个worker进程支持的最大连接数
} #事件块的结束
http { #HTTP区块的开始
include mime.types; #Nginx支持媒体类型库文件
default_type application/octet-stream; #默认的媒体类型
sendfile on; #开启高速传输模式
keepalive_timeout 65; #连接超时
server { #第一个server区块的开始
listen 80; #提供服务的端口,默认为80
server_name localhost; #提供服务的域名主机
location / { #第一个location区块的开始
root html; #站点的根目录,相当于Nginx的安装目录
index index.html index.htm; #默认的首页文件,多个使用空格隔开
} #第一个location区块的结束
error_page 500 502 503 504 /50x.html; #出现对应的http状态码是,使用50x.html回应客户
location = /50x.html { #location区块的开始,访问50x.html
root html; #指定对应的站点目录为html
}
}
} #HTTP区块的结束
4、虚拟主机的概念及配置
</VirtualHost>里面,而Nginx则是用server{}标签来标识一个虚拟主机。一个web服务可以有多个虚拟主机的标签对,即可以同时支持多个虚拟主机站点。
虚拟主机主要包含有三种类型,一是基于域名的虚拟主机,二是基于端口的虚拟主机还有就是基于IP的虚拟主机。最为常见的是基于域名和端口的,下面我们以基于域名的为例讲解如何配置虚拟主机。本次实验会配置两个虚拟主机,分别是www.pcm.com以及bbs.pcm.com。
(1)在html目录下新建虚拟主机的目录www和bbs,并写入首页文件。
mkdir /usr/local/nginx/html/www/
mkdir /usr/local/nginx/html/bbs/
echo "这是www站点,IP地址为:192.168.31.10" >> /usr/local/nginx/html/www/index.html
cho "这是bbs站点,IP地址为:192.168.31.10" >> /usr/local/nginx/html/bbs/index.html
(2)修改nginx.conf配置文件,在conf目录下新建extra目录用来放置www和bbs的配置文件。
cd /usr/local/nginx/conf
egrep -v "#|^$" nginx.conf.default >nginx.conf #不要注释和空行的nginx的配置文件
修改之后的配置文件如下所示,删除了server区块,把server区块写入到extra目录对应的文件里面,用include引用这些配置文件。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include extra/www.conf; #这样可以直接引用
include extra/bbs.conf;
}
(3)在conf目录下新建目录extra,然后在该目录下新建 www.conf以及bbs.conf两个文件
mkdir extra
touch extra/www.conf
touch extra/bbs.conf
这两个文件的配置如下
www.conf | bbs.conf |
server { listen 80; server_name www.pcm.com; location / { root html/www; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } | server { listen 80; server_name bbs.pcm.com; location / { root html/bbs; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } |
(4)修改hosts文件,增加对域名www.pcm.com和bbs.pcm.com的解析,这样我们可以直接在本机上做测试了。
echo "192.168.31.10 www.pcm.com bbs.pcm.com cms.pcm.com blog.pcm.com" >>/etc/hosts
(5)检查nginx.conf文件有没有语法问题,没有的话重新加载nginx。
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload #重新加载配置文件,平滑重启,不建议用restart重启
(6)本机上,用curl测试。
(7)在windows主机上做测试(可选)
打开winows的hosts文件,增加这两行,文件所在路径是:C:\Windows\System32\drivers\etc
然后用浏览器输入网址验证,到这里,nginx的虚拟主机配置成功。
转载于:https://blog.51cto.com/superpcm/2091875