Nginx常用功能配置实战
一、规范优化Nginx配置文件
Apache主配置包含虚拟主机子文件的方法,Nginx也借鉴了Apache的这种包含方法。
Nginx的主配置文件为nginx.conf,主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目录中,虚拟主机的配置文件按照网站的域名或功能取名。子配置文件和主配置文件分开即可。
子配置文件和主配置文件如何关联:
include file |mask;
1、子配置文件
#mkdir /application/nginx/conf/extra
在/application/nginx/conf/extra里建子配置文件
#vim 01_www.conf
2、把子配置文件写入主配置文件
[root@web02/application/nginx/conf]#vim nginx.conf
include extra/01_www.conf;
3、检验语法,测试
#nginx -t
#nginx -s reload
#curl mifengdiandi.xyz
二、Nginx虚拟主机的别名配置
所谓虚拟主机别名,就是为虚拟主机设置了除了主域名以外的一个或多个域名名字,这样能实现用户访问的多个域名对应同一个虚拟主机网站的功能。
如不使用别名则很难通过域名URL的方式检测判断节点下面机器是否正常(因为这些集群节点域名是同一个)。通过别名可以方便查看那台服务器出现问题。
#nginx -t
#nginx -s reload
#vim /etc/hosts #<==添加mifengdiandi_01的解析。
#curl mifengdiandi_01 #<==测试别名是否成功。
三、Nginx状态信息功能实战(为安全期间这些信息防止外部用户查看)
Nginx软件的功能模块中有一个ngx_http_stub_status_module模块,这个模块的主要功能是记录Nginx的基本访问状态信息,让使用者了解nginx的工作状态,如连接数等信息。在编译安装时必须增加http_stub_status_module支持。
1、查看编制安装时是否设置:
#nginx -V #<==V是大写。
2、配置Nginx staus
[root@web02/application/nginx/conf/extra]#vim 02_status.conf
#status的状态设置
server{
listen 80;
server_name status.mifengdiandi.xyz;
location / {
stub_status on;
access_log off;
}
}
[root@web02/application/nginx/conf]#vim nginx.conf
3、验证结果
#nginx -t #<==验证语法是否正确。
#nginx -s reload #<==重启服务。
#curl status.mifengdiandi.xyz #<==查看结果。
状态信息查看结果说明:
Active connections: 1 #<==表示Nginx正处理的活动链接数:1个
Server #<==表示Nginx启动到现在共处理了几个链接。
accepts #<==表示Nginx启动到现在共成功创建几次握手。
handled requests #<==表示共处理了几次请求。
Reading #<==为Nginx读取到客户端的Header信息数。
Writing #<==为Nginx返回给客户端的Header信息数。
Waiting为Nginx已经处理完正在等候下一次请求指令的驻留连接。在开启keep-alive的情况下,这个值等于active–(reading+writing)。
四、为Nginx增加错误日志(error_log)配置
配置记录Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(ngx_core_module)的参数,该参数名字为error_log。
错误日志级别常见的有[debug|info|notice|warn|error|crit|alert|emerg]。
注意不要配置info等较低级别,会带来巨大磁盘I/O消耗。warn|error|crit一般会选择其中一种级别。
增加错误日志的配置方法如下:
#vim nginx.conf
error_log logs/error.log; #<==配置这一行即可,在主配置里增加,在所有虚拟主机生效。
五、日志内容格式
日志格式关键参数:
#vim nginx.conf
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#nginx -t
#nginx -s stop
#nginx
#cat access.log