nginx常用配置说明

发布时间:2020-02-23 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了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
$status HTTP请求状态 200
$upstream_status upstream状态 $body_bytes_sent 发送给客户端文件内容大小 1547
$http_referer url跳转来源 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_protocol SSL协议版本 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常用配置说明全部内容,希望文章能够帮你解决nginx常用配置说明所遇到的程序开发问题。

其他人正在看

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
标签: