首页 > 代码库 > nginx常用配置说明

nginx常用配置说明

nginx的主配置(nginx.conf)说明

#worker进程数量worker_processes  1;#错误日志error_log logs/error.log;#进程ID文件pid logs/nginx.pid;#事件区块开始events {    #worker进程支持的最大连接数    worker_connections  1024;}#http区块开始http {    #nginx支持的媒体类型库文件    include       mime.types;    #默认的媒体文件    default_type  application/octet-stream;    #开启高效传输模式    sendfile        on;    #连接超时    keepalive_timeout  65;    #一个server区块开始    server {        #端口号        listen       80;        #服务主机名        server_name  localhost;        #编码        charset utf-8;        #location区块        location / {            #站点根目录            root   html;            #默认首页文件            index  index.html index.htm;        }        #出现对应状态码时,访问50x.html        error_page   500 502 503 504  /50x.html;        #访问50x.html时指定目录为html        location = /50x.html {            root   html;        }    }}

nginx的状态信息功能

location / {    #打开状态信息开关    stub_status on;    access_log off;    allow 127.0.0.1/24;    deny all;}

nginx错误日志配置

关键字 日志文件 错误日志级别[debug|info|notice|warn|error|crit|alert|emerg]

error_log  logs/error.log  notice;

nginx访问日志配置

#定义日志格式

log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘                  ‘$status $body_bytes_sent "$http_referer" ‘                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;

#格式参数说明

参数说明示例
$remote_addr客户端地址211.28.65.253
$remote_user客户端用户名称--
$time_local访问时间和时区18/Jul/2012:17:00:01 +0800
$request请求的URI和HTTP协议"GET /article-10000.html HTTP/1.1"
$http_host请求地址,即浏览器中你输入的地址(IP或域名)www.it300.com
192.168.100.100
$statusHTTP请求状态200
$upstream_statusupstream状态200
$body_bytes_sent发送给客户端文件内容大小1547
$http_refererurl跳转来源https://www.baidu.com/
$http_user_agent用户终端浏览器等信息"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$ssl_protocolSSL协议版本TLSv1
$ssl_cipher交换数据中的算法RC4-SHA
$upstream_addr后台upstream的地址,即真正提供服务的主机地址10.10.10.100:80
$request_time整个请求的总时间0.205
$upstream_response_time请求过程中,upstream响应时间0.002

#访问日志配置

access_log logs/access.log main;

#在高并发的网站下,日志配置可以如下

access_log logs/access.log main gzip buffer=32k flush=5s;


nginx的location作用
location的作用是根据用户请求的URI来执行不同的应用。

location [= | ~ | ~* | ^~] URI {    ... ...}
~用于区分大小写~*用于不区分大小写^~进行常规字符串匹配检查后,不做正则表达式的检查

例如:

location = / {    #精确匹配/}location / {    #所有location不能匹配后的默认匹配}location /www/ {    #匹配常规字符串,有正则,优先匹配正则}location ^~ /imgs/ {    #匹配常规字符串,不做正则匹配检查}location ~* \.(gif|jpg|jpeg)$ {    #正则匹配}

nginx的rewrite配置

rewrite指令语法

rewrite regex replacement [flag];

例如:

rewrite ^/(.*) http://www.baidu.com/$1 permanent;

其中$1表示前面小括号匹配的部分。

flag参数说明:last 本条规则匹配完成后,继续向下匹配新的规则break 本条规则匹配完即终止redirect 返回302临时重定向permanent 返回301永久重定向

上述,last和break用来实现URL重写,redirect和permanet用来实现URL跳转

例如:

server {    listen 80;    server_name book.site.com;    location / {        root html/book;        index index.html index.htm;    }    if($http_host ~* "^(.*)\.site\.com$") {        set $domain $1;        rewrite ^(.*) http://www.site.com/$domain/test.html break;    }}

当我们访问book.site.com时URL重写为www.site.com/book/test.html

nginx常用配置说明