Nginx其他配置

2019-08-05  本文已影响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; 
}
上一篇下一篇

猜你喜欢

热点阅读