• 前端必须掌握的 nginx 技能(4)


    概述

    作为一个前端,我觉得必须要学会使用 nginx 干下面几件事:

    1. 代理静态资源
    2. 设置反向代理(添加https)
    3. 设置缓存
    4. 设置 log
    5. 部署 smtp 服务
    6. 设置 redis 缓存(选)

    下面我按照这个节奏一一研究一遍,把心得记录下来,供以后开发时参考,相信对其他人也有用。

    设置 log

    nginx 的日志分为访问日志和错误日志,在配置中加入如下命令即可开启日志:

    access_log /Users/zhouyang/Documents/tencent/test/local-nginx/nginx-access.log;
    error_log /Users/zhouyang/Documents/tencent/test/local-nginx/error.log;
    

    其中后面的是日志存放的路径。

    生产环境日志配置

    我们一般使用变量来定制日志输出的格式,示例如下:

    events {
        # worker_connections  1024;  ## Default: 1024
    }
    
    http {
        server {
            listen  8767;
            server_name  192.168.2.32;
            location / {
                gzip  on;
                deny 192.168.2.32;
                root /Users/zhouyang/Documents/tencent/test/local-nginx;
                expires      30s;
            }
            location /haha {
                valid_referers none blocked server_names
                   *.example.com example.* www.example.org/galleries/
                   ~.google.;
    
                if ($invalid_referer = '') {
                    return 401;
                }
            }
            location /baidu {
                proxy_pass http://www.baidu.com;
            }
            location /yaya {
                return 302 /baidu;
            }
        }
        log_format  main    '$host $remote_addr - [$time_local] "$request" $status '
                            '$body_bytes_sent "$http_referer" "$http_user_agent" '
                            '[$request_time $upstream_response_time]';
    
                            ## '' 是对多个变量的囊括
                            ## - [] 等会被当做分隔符打印在变量中间
                            ## $host 域名
                            ## $remote_addr 客户端地址
                            ## $time_local 时间
                            ## $request 请求头信息
                            ## $status 返回状态
                            ## $body_bytes_sent 响应的 body 的大小
                            ## $http_referer 上一级访问的地址,不是客户端上一次访问的页面地址
                            ## $http_user_agent 访问的客户端类型(浏览器,curl,等)
                            ## $request_time 请求处理时间
                            ## $upstream_response_time 后端处理时间
    
        access_log /Users/zhouyang/Documents/tencent/test/local-nginx/nginx-access.log main;
        error_log /Users/zhouyang/Documents/tencent/test/local-nginx/error.log;
    }
    
  • 相关阅读:
    4-10
    4-9
    第三章例3-4
    第三章例3-3
    第三章例3-2
    第三章例3-1
    第二章例2-11
    第二章例2-10
    第二章例2-9
    第二章例2-8
  • 原文地址:https://www.cnblogs.com/yangzhou33/p/11605737.html
Copyright © 2020-2023  润新知