zoukankan      html  css  js  c++  java
  • nginx配置及常见问题

    问题

    1.openresty请求时,不能解析域名?
    openresty依赖配置里面的resolver 192.168.1.1;
    2.文件上传是报错413 Request Entity Too Large
    在配置文件的http{}段中加入 client_max_body_size 20m; 20m为允许最大上传的大小。
    3.日志打印不出来
    可能是日志级别过高,没有记录日志。

    nginx变量

    1.Nginx变量支持变量替换,类似于PHP的双引号引起来的变量

    1.set $a '';(set y x;)意味着创建变量$a且初始化为空字符串。(set y x;x是自变量,y是因变量,将y赋值给x)

     location /test {
            set $orig_args $args;
            set $args "a=3&b=4";
     
            echo "original args: $orig_args";
            echo "args: $args";
        }
    
        $ curl 'http://localhost:8080/test?a=0&b=1&c=2'
        original args: a=0&b=1&c=2
        args: a=3&b=4
    

    2.map映射(map x y{}),用 map 指令定义了用户变量 $foo 与 $args 内建变量之间的映射关系。我们的 $args 就是“自变量” x,而 $foo 则是“因变量” y,即 $args 变量的值映射到了 $foo 变量上。

        map $args $foo {
            default     0;
            debug       1;
        }
     
        server {
            listen 8080;
     
            location /test {
                set $orig_foo $foo;
                set $args debug;
     
                echo "orginal foo: $orig_foo";
                echo "foo: $foo";
            }
        }
    

    上面这个map中default表示当其他的条件都不匹配时,才匹配(即$foo映射为0),如果$args == debug,$foo为1.

        $ curl 'http://localhost:8080/test'
        original foo: 0
        foo: 0
    上述foo仍然为0是因为 $foo 变量在第一次读取时,根据映射规则计算出的值被缓存住了。刚才我们说过,Nginx 模块可以为其创建的变量选择使用值容器,作为其“取处理程序”计算结果的缓存。
        $ curl 'http://localhost:8080/test?debug'
        original foo: 1
        foo: 1
    

    其值只在需要的时候才会计算获取, 这种只在实际使用对象时才计算对象值的技术,在计算领域被称为“惰性求值”(lazy evaluation)。


    NGINX访问日志添加host

    默认access.log没有host,添加host需要修改日志格式:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$http_host" "$request" '
                      '$status $body_bytes_sent "$http_referer" "$http_user_agent"';
    
    access_log  logs/access.log  main;
    
  • 相关阅读:
    go ERROR invalid character '<' looking for beginning of value
    C#实现将网址生成二维码图片
    二、WPF入门教程——Bingding学习
    一、WPF入门教程——创建WPF项目
    C#实现DataTable行列转置
    VBS整蛊代码
    Task.WhenAll和Task.WhenAny
    Task.WaitAll和Task.WaitAny
    CancellationTokenSource
    组合ContinueWith
  • 原文地址:https://www.cnblogs.com/mentalidade/p/6721131.html
Copyright © 2011-2022 走看看