美文网首页
Nginx其他配置

Nginx其他配置

作者: 爱吃豆包 | 来源:发表于2019-08-05 18:16 被阅读0次

    Nginx中文文档

    alias 和 root 大致区别

    location /file/{
    alias /var/html/file; #这个查找文件的路径直接是/var/html/file
    }
    location /file/{
    root /var/html/file; #这个查找文件的路径应该是/var/html/file/file
    }
    

    try_files 解释

    location /images/ {
        root /opt/html/;
        try_files $uri   $uri/  /images/default.gif; 
    }
    

    比如 请求 127.0.0.1/images/test.gif 会依次查找(在哪个步骤找到了,就用哪个)
    1.文件/opt/html/images/test.gif
    2.文件夹 /opt/html/images/test.gif/下的index文件
    3.请求127.0.0.1/images/default.gif

    其他注意事项

    try-files 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页 即 访问127.0.0.1/images/ 不会去访问 127.0.0.1/images/index.html

    关键点1:按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理
    关键点2:查找路径是按照给定的root或alias为根路径来查找的
    关键点3:如果给出的file都没有匹配到,则重新请求最后一个参数给定的uri,就是新的location匹配
    关键点4:如果是格式2,如果最后一个参数是 = 404 ,若给出的file都没有匹配到,则最后返回404的响应码

    nginx gizp配置

    可以配置在 location 或者 http 或 server 内
    比如我这里配置

    # 默认首页
         location /little_monsters {
             index  index.html index.htm;
             #try_files $uri $uri/ /index.html;
             #root /root/javaProject/;
             alias /root/javaProject/little_monsters/dist/;
             try_files $uri $uri/ /dist/index.html;
             gzip on;
             gzip_types application/javascript text/css image/jpeg image/png;
          }
    
    
     # 映射 静态 目录
        location /static/ {
             root   /root/javaProject/little_monsters/dist/;
             index  index.html index.htm;
             gzip on;
             gzip_types application/javascript text/css image/jpeg image/png;
        }
    
    

    这里是gzip所有属性(可以配置在 location 或者 http 或 server 内)

    server {
      # 开启gzip on为开启,off为关闭
      gzip on;
      # 检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容,不存在则先压缩再返回
      gzip_static on;
      # 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
      # 默认值是0,不管页面多大都压缩。
      # 建议设置成大于10k的字节数,配合compression-webpack-plugin
      gzip_min_length 10k;
      # 对特定的MIME类型生效,其中'text/html’被系统强制启用
      gzip_types text/javascript application/javascript text/css application/json;
      # Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果
      # 匹配的前提是后端服务器必须要返回包含"Via"的 header头
      # off(关闭所有代理结果的数据的压缩)
      # expired(启用压缩,如果header头中包括"Expires"头信息)
      # no-cache(启用压缩,header头中包含"Cache-Control:no-cache")
      # no-store(启用压缩,header头中包含"Cache-Control:no-store")
      # private(启用压缩,header头中包含"Cache-Control:private")
      # no_last_modefied(启用压缩,header头中不包含"Last-Modified")
      # no_etag(启用压缩,如果header头中不包含"Etag"头信息)
      # auth(启用压缩,如果header头中包含"Authorization"头信息)
      # any - 无条件启用压缩
      gzip_proxied any;
      # 请求加个 vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩
      gzip_vary on;
      # 同 compression-webpack-plugin 插件一样,gzip压缩比(1~9),
      # 越小压缩效果越差,但是越大处理越慢,一般取中间值
      gzip_comp_level 6;
      # 获取多少内存用于缓存压缩结果,‘16  8k’表示以8k*16 为单位获得。
      # PS: 如果没有.gz文件,是需要Nginx实时压缩的
      gzip_buffers 16 8k;
      # 注:99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。
      gzip_http_version 1.1;
    }
    

    Nginx 跨域解决

    # 可以配置 server 或者 location 里面
     ## 通过客户端请求头信息
        proxy_pass_request_headers on;
        ## 保留客户端的真实信息
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    
    ............
    location /api {
                proxy_pass   http://127.0.0.1:8086/api/;
                add_header Access-Control-Allow-Methods *;
                add_header Access-Control-Max-Age 3600;
                add_header Access-Control-Allow-Credentials true;
                add_header Access-Control-Allow-Origin $http_origin;
                add_header Access-Control-Allow-Headers $http_access_control_request_headers;
    
                # 如果是请求类型是 OPTIONS 就直接返回 200
                if ($request_method = OPTIONS ) {
                    return 200;
                }
     }
    

    Nginx 映射静态资源

    server {
            listen       8012;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
            
            # 映射 vue 目录
            location / {
                root   E:\vue_b\property;
                index  index.html index.htm;
            }
            
            # 映射 静态 目录
            location /static/ {
                root   E:\vue_b\property\static;
                index  index.html index.htm;
             }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    

    引入其他conf配置文件

    http {
      ...... 忽略
    
    
       include conf_d/*.conf; 
    }
    

    相关文章

      网友评论

          本文标题:Nginx其他配置

          本文链接:https://www.haomeiwen.com/subject/txcvdctx.html