Nginx模块及配置虚拟主机
1、Nginx的2组主要的模块
(1)core modules (必需,核心模块)
包括:Main、Events
(2)Standard HTTP modules(虽然不是必需,但是缺省都会安装,不建议改动)
缺省条件下,这两组模块都会安装,修改配置文件,主要是根据2组模块的功能来修改模块的参数。可通过nginx官网查看模块的功能。
2、Nginx的配置文件。
静态文件只需要修改 nginx.conf 就可以,动态文件需要结合 fastcgi.conf 和 fastcgi_params 修改。带有 default 的文件和上面的文件是一样的。
3、nginx主配置文件nginx.conf
Nginx的配置文件是一个纯文本文件,位于Nginx安装目录的conf目录下,整个配置文件是以块的形式组织的。每个块一般以一个大括号“{}”来表示,块可以分为几个层次,整个配置文件中Main指令位于最高层,在Main层下面可以有Events、HTTP等层级,而在HTTP层中又包含有Server层,即server block,server block中又可以分为location层,并且一个server block中可以包含多个location block。
4、配置Nginx虚拟主机
(1)在配置文件中添加虚拟主机
一个server标签就是一个虚拟主机
server { listen 80; server_name www.baidu.com; root html/www; index index.html index.htm; } server { listen 80; server_name bbs.baidu.com; root html/bbs; index index.html index.htm; } server { listen 80; server_name blog.baidu.com; root html/blog; index index.html index.htm; }
(2)检查语法并启动nginx
/application/nginx/sbin/nginx -t #检查语法
/application/nginx/sbin/ngixn #启动Nginx
/application/nginx/sbin/nginx -s reload #平滑重启
(3)创建三个目录,和上面虚拟主机的域名对应
mkdir /application/nginx/html/{www,bbs,blog}
(4)使用循环的方法在三个目录下创建标签页,并写入内容
for n in www bbs blog;do echo "$i.baidu.com" >/application/nginx/html/$n/index.html;done #创建index的标签页 for n in www bbs blog;do cat /application/nginx/html/$n/index.html;done #查看三个标签的内容
(5)在本机的hosts文件中添加虚拟主机
C:\Windows\System32\drivers\etc\hosts
(6)本地ping测试:
(7)浏览器测试:
5、配置虚拟主机流程:
(1)复制一个完成的server标签段到结尾,注意,要放在http的结束大括号前,也就是server标签段放入http标签。
(2)更改server_name及对应网页的root根目录
(3)检查配置文件语法, 平滑重启服务。
(4)创建server_name对应网页的根目录,并且建立测试,如果没有index首页会出现403错误。
(5)在客户端对server_name的主机名做host解析和DNS配置,并检查(ping域名看返回的结果)
(6)浏览器访问,或在linux客户端做host解析,用wget或curl访问。
6、添加Nginx状态信息:
(1)在配置文件中添加一个serer标签
#status server { listen 80; server_name status.baidu.com; stub_status on; #状态模块 - 打开 access_log off; #不记录日志 }
(2)本地hosts文件中添加一个域名
(3)ping测试:
返回正常。
(4)浏览器访问 status.baidu.com
状态说明:
①Active connections
Nginx正处理的活动连接数为2个
②server accepts handled requests
第一个server,表示nginx启动到现在共处理了4个连接
第二个accepts,表示nginx启动到现在共成功创建4次握手
请求丢失数=(握手数-连接数),本次状态显示没有丢失请求。
第三个handled requests,表示总共处理了81次请求
③Reading:nginx读取到客户端的Header信息数
④Writing:nginx返回给客户端的Header信息数
⑤Waiting:nginx已经处理完正在等候下一次请求指令的驻留连接,开启keep-alive的情况下。
这个值等于 active-(reading+writing)
7、重定向访问的网址:
(1)添加一个server标签段
server { listen 80; server_name baidu123.com; rewrite ^/(.*) http://bbs.baidu.com/$1 permanent; }
如果访问的是baidu123.com那么重写网址到bbs。将 / 后面的所有内容都重定向到bbs.baidu.com ,括号为分组,$1为将第一个分组的内容,permanent表示永久生效。
(2)将baidu123.com写入到本地hosts文件中。测试:输入baidu123.com将自动重定向到bbs.baidu.com
8、基于端口的配置:
(1)修改server标签段的端口号
server { listen 8000; #端口改为8000 server_name bbs.baidu.com; root html/bbs; index index.html index.htm; }
(2)测试:
使用IP地址解析:
9、基于IP的配置
(1)将server标签修改为IP
server { listen 192.168.3.138:80; server_name www.baidu.com; root html/www; index index.html index.htm; }
(2)测试: